start reimplementing data function
reimplement data method