I sometimes think the object itself should have a complex setter on it.