still trying to figure out the error hierarchy