refactoring codeclimate guide