Initial implementation.
Improved error messages. Added Makefile.

Type make to build the project. Executable will be copied to `bin`
directory.