Changed Enum to classes and added some unittests
move controller merged