added == vs ====
some more reorganization