pull out dependent classes into their own specs and lib folder