solved all the way up to comparehension