Date: 11/30/14, Author: Jonas Nordstrom. Added mostly error handling and
user friendly error messages in different error cases.