add valueOf method