almost finished refactor for new font handling