Only reduce method remains to be done and some corrections with the use of enum_for method to create enumerator