class is optional