Added abstraction to split functionality into modules and integrated very simple login check