more stuff, refactoring