added support for custom property setter and function to map properties using camel case to fields using underscores