add: move _data to the abstract class