finished most javascript