update for Rust 0.12.0 && use Cargo