operator overloading, lambda, enumerator