extend principle