add restrict to class, wip diff