more rafactoring; a lot to go