Implement, ready for testing.