Further simplify so all intelligence is in member types