Second commit

Added command line options. Changing code to utilize command line
options and some custom types.