General refactoring
General refactoring