moved some of the dependancies into the core module