add: location, i/o