more completely implemented Context; added several enums