solutions to exercises