#3 and #4 create map and inferable mapping methods for public usage