added create exceptions and tests