better naming of functions, ability to create instances of yet unknown type