cleanup, using short circuit eval