General functionality works now
Tidying up