made lots of changes