broken, untested, big glyph refactor