added overloading of main operations