Initial commit after code Refactoring