al have been done
final version