double-pushout approach