This topic has proven to be much more involved than I originally anticipated, so it has been downgraded in priority