initial work on new js client with no dependencies and new ui