Work in progress. Almost there.