Call generic implementation only when needed.