Finished program

Still need to trouble-shoot all variations.