implementing level 1