Enums as First Class

 - Fixes #96 
 - Introduce enums as first class element