made a few changes to overloading