implicit and explicit methods