implements HasText<> added