compatible with rust-0.12