Adding map class and basic functionality and tests