Implemented Recursive picking algorithm

It is not 100% functional. i will be rewriting it but do not want to
lose this progress.