add generateDataHandler()