susbstantial changes to both client server side js