less awful but still functional