refactor naming and organization