Text class - fully implemented with no cosmetics