don't forget to throw an actual error