finished except for some minor things