I think I have the right types now