Implemented the idea from Nathan