Trying a different approach. This code does not compile yet.