made the mostly final product yet code still needs to be cleaned and but is ready for sharing