changed behavior of context, added unique_context, updated base