make vector a tuple
ditch IFOs, make separate objects