add is_convertible trait