tw should extend abstract