checked states handled by JS