client side angular implementation