UPDATE:add in pump func,need test;rev/upd nodes comments