naming and structure refactor