add timer and tick, also decouple currentPiece with state's blocks