updated, more complex CFG