adjacent -> derived renamed, and rewritten