Cleaned up design, and prettified code slightly
Merging redesign and code layout cleanup with master branch