Learning about overloading and templates