improving & refactoring