Lots of awesome changes and updates according to suggestions from David and Kartik