worked on solo, but incomplete