add geocoder and enumerable
add validation and special properties to models