Initial checkin. Needs tidying up and formatting by works