Second try, my own, looks promising, but still not really right