Refactored the router system by moving code from the constructor to there own methods