add key context, add reference datatype