starts implementing GUI