won't work with 5.3 because of Closure::bindTo()