refactored using composition pattern
added basic text characteristic