Refactored settings thoroughly into seperate components