swtich from optional pointers to overloads