Finished new approach. Ready for testing.