shouldn't 'data' be null checked or asserted?