enhanced enum factory to return just the relevant properties