Initial version

Initial version which needs tidying up.