Have a look here:
I'm not saying that it's solved matter, but maybe it will help you get started faster than I did.