separated out TDM generator into its own class and reduced test