getting more sophisticated with context structure