Add plugin mechanism and move dashboard loading to controller