implement hash
implement and, or