use bind instead of self variable