First commit. Rudimentary version. No exception handling yet.