General refactoring - part II