first cut js client and manual test