added ability to derefer through aliases
added function parameter based overloading