Work in progress and some bits need completing anyway but thrown up for criticism.