CoreText abstraction layer inspired by TextKit