Reindeted and tried to conform to rust-style-guide