Refactor mod list

Includes #495 but has been rebased onto master. 
Sure. The only reason they are there is that I've forget to turn of the code format on save functionally.