This looks to provide a possible answer to the question - and an alternative?