more, also refactoring