change errors to exceptions, add looking up default zone