ready for overloading the operators