Flat edges added, just need to straighten out some bugs.
Some visual tweaks. Time to merge.

The flat edges still move a bit weirdly, but I may need some help
working that out.