accept anything that supports #valueOf