don't just return self from to_hash