Initial implementation without testing.