Exercises and implementations