added call func with type management