Refactor structure and naming