now we've got some sensible architecture