returning reference or pointer to an object created inside function is evil. Started to fix those. Dont know what to do with Portable and PortableFactory