This is work in progress. I will probably never finish this module, so if you have the desire to do so...