complete skeleton code