Added many functional classes, UI needs updating