clearer logic