solutions to exercism.io problems