lots of progress, just need to finish