typing all overloads together