intermediate code
final code session4