refactor and renaming