clearer logic & less lines