#28 Start refactoring