Split view engine into separate packages