total rework of js
merging conflicts