split code out into basic, intermediate, expert