changed lots of stuff - it has been far too long since my last commit