add valueof()