more work on js interface