converts itself to a hash