class-based configuration