Subroutines can now be called through on mocks
update readme and clean up some code