Updated skeleton with virtual keyword attached to methods.