refactoring a lot of stuff