The two different get_user_context functions could cause confusion. Perhaps rename the one in Param.h user_context_param() ?