array, enum, dictionary and changes based oin feedback from codereview