Start moving dependencies up the chain and add some more tests