major work on #6, still not done though