Added callback support, with scope