modification class unfinished