implement scene adding callbacks, make a few API tweaks