add new options & change role of `prepareData`