unified functional/objectified styles, added separate instantiation methods