cleaned up repo, continued refining implementation