changed implementation of enum types