add optional shape_id and remove graph manip