merge asst4 and asst3, update scenegraph and picker