added New() and init() methods