Final Port

The original program is successfully ported. All future commits will be
additions of new features to the program.