Changed how callbacks work in preparation for supporting array operation callbacks