should probably create/use a more specific exception type