implement bind(this)