Mostly finished

Polished and mostly perfect. Working as intended just need some more
error checking and testing.