Merge of latest changes in original project
Merge of latest changes from original project, refactoring
Refactoring