probably works. enums fully implemented