init was reverted to new in Rust