Client side MV* frameworks