Enum decription

Magic enum values replaced with property descrptors and exception
handling