implementations and construction rules