modify prototype(shrink), double way communication (still has bugs)