add infrastructure so that timing source can be a loadable module... next steps are...