First attempt. Work in progress.