Cleaned up a good bit still a few printlns in there but there notess to myself explaining code