refactor and rename stuff