updates with completed code