Enum's metadata
reafactoring continues...

'as' refactor
new IFactory members