refactoring
fixed merge conflicts