correctly handle overloading