traversable expressions, work on expression in guard, refactoring guard
ignores