Implemented all of the states for the client side