minor design refactoring