#24 Refactoring in progress