don't use StringBlock()
simplify api