improved person class