Added overloading and templates.