add support for custom getter/setter