Adding levels 2 and 3
refactoring for supporting multiple levels (buggy, work in progress)