#53 refactoring