add get, get_source, exists for type