Implement in terms of possible substitutions