all refactoring good so far