Restructure Authentication
dependent on #262 In this ticket, we want to restructure Authentication component so that we use MVC(or other design patterns).
issue