AngularJs in depth