class option functional