exercise #2.3 added