this is rough framewith some JS