adding support for hasOwnProperty