Using exceptions for this is dumb