using bind instead of self, added shrink
Merge branch 'noself'