object functions can handle hasOwnProperty override