Reworked to solve control issues.