update data
propagate options to attribute generators
reorganize utility functions