all working, goign to branch to clean up