- refactoring a little bit