I like the virtual contest feature but have one suggestion for improvement. When a user selects a virtual contest randomly from the list, the user can easily end up with a contest that has one or more problems that the user has already solved. One can, of course, manually check the problems in virtual contests before starting one, but this is tedious. My suggestion is to have a simple filter functionality that the user can use to filter out all virtual contests that contain problems that the user has already solved.