removed some code for less technical depth