functions can return instances now