Overhaul 2.0

Now with better design and less segmentation faulting.