add dataopt and sequence class