Made Enum abstract class.
Cleanup and comments.