solve all exercises and include tests for same