Change to class-based approach