implement shrinking as effect