Merge "Refactoring for better extendability"