added hasOwnProperty