implement 3 methods, with an option, and with performance tests [NOTE:
this is not mean to be merged but to exist in the git history as a
record of why a method was selected]