Buttload of feature additions

Also style changes