solutions to the exercises at exercism.io