Break profilelist into a recipe
Expanded the ProfileList class so it worked more like a recipe. This helps to get rid of a lot of special cases and simplifies the code. It also makes it possible to do things like group block.
Showing with 172 additions and 106 deletions