add optional and class