Decided to give this a crack myself: