A first version that needs restructuring.