#52: Everything works, but too lazy to go  through all possibilities.
#52: Refactored
#52: merge conflict