modularize to prepare for context proxy
context-dependent proxy