Just for information ; thinking about what Richard and others said I am completely reengineering it. However, this is a minimal change reengineering, not a complete rewrite with different calls !
The Font thing suffers a bit because it’s the first Corona thing I did of any consequence 
However it will be pretty much identical, in fact slightly easier. If anyone is using the old one it will be pretty much the same as far as possible. (which is most of it) - it will work the same way, do the same things etc. but be cleaner and more robust.
The main differences are ; this is a lot more robust and well constructed, but also the object is now a display group sub class, so it fits much better into Corona. It’s a view group so it will behave like one (except that anchorChildren will not work if you animate because the enclosing rectangle will cause it to jerk about a lot !)
It allows stuff like this - I will put display.newBitmapFont() back and hopefully I can make anchorX, anchorY and text (the most problematic) work as properties rather than methods (so you can do bms.text = “Hello world !”) - this partly depends on how I can wire it into Corona 
This is actually now working, below 
bms = fm.BitmapString:new("demofont",100) -- will change to display.newBitmapText() bms:setText("Hello world\nAgain.\nLine 3") -- hopefully bms.text = bms.x = 160 bms.y = 240 bms.xScale = 0.5 bms.yScale = 0.5 bms.rotation = 10

