ported all work from my classwork to here