Added OO structure, used Angular JS