Most of problem #2 done, need to implement winner() and callback