Made some names clearer and added PatterNode