text.* abstraction
starling backend example