I wrote this program for learning purposes, so don't expect it to be a bug-free or a feature-complete application.