refactoring the font system