testing totally new method
ready for optimizing testing
testing new version with memo
Finished 60, hardest one yet