with explicit and implicit self
to determine whether we can call directly
also tests for guard to work