This is another version I came up with a while back.