Moved to GitHub as it may still be somewhat relevant even though it hasn't been updated for quite a while. Mainly educational purposes.