Drastically changed the way things load to allow easier extending