copy extras more efficiently, setup reading counter and broadcast it in intent