initial commit of the refactoring