added overload protection