change class name and refactor