Changes for presentable code. Comments soon.