data_set && test added
some design changes