Preparing bigger refactoring
Complete with refactoring