complete implement of the ContextMenu