Reworked to be more smooth and resetable.