see dtbaker.net for more