working out the infrastructure for new UI