add unified load_from_hash to complex_type