diff --git a/Cargo.toml b/Cargo.toml
index 729f1cca7f2d9d908fa49253ef67e8399b1f1702..e57b8d5ca744427e6e4c9c801981bdf04ba6edab 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,6 +2,7 @@
 name = "relibc"
 version = "0.1.0"
 authors = ["Jeremy Soller <jackpot51@gmail.com>"]
+edition = "2018"
 
 [lib]
 name = "relibc"
diff --git a/src/c_str.rs b/src/c_str.rs
index b6158b934bd3e33dc857ca72d7ea36cc5b6198f8..a236450b1f00575782b6cff5f86b59495ef9c361 100644
--- a/src/c_str.rs
+++ b/src/c_str.rs
@@ -23,11 +23,11 @@ use core::ptr;
 use core::slice;
 use core::str::{self, Utf8Error};
 
-use header::string::strlen;
-use platform::types::*;
+use crate::header::string::strlen;
+use crate::platform::types::*;
 
 pub fn memchr(needle: u8, haystack: &[u8]) -> Option<usize> {
-    use header::string;
+    use crate::header::string;
 
     let p = unsafe {
         string::memchr(
diff --git a/src/cxa.rs b/src/cxa.rs
index 62a47eefc59664ec8fa583b3e8f72444499cd257..26221fa412a005d65eeb0924d78b1570ea1a3dff 100644
--- a/src/cxa.rs
+++ b/src/cxa.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 // TODO: Implement cxa_finalize and uncomment this
 
diff --git a/src/db.rs b/src/db.rs
index 9c2acce19b15defc87b886f8a6a4c2fa175ffb6a..402552a8dceb6401e35686bfcf85d34745b13275 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -1,10 +1,10 @@
 use alloc::string::String;
 use alloc::vec::Vec;
 
-use c_str::CStr;
-use fs::File;
-use header::fcntl;
-use io::{self, BufRead, BufReader};
+use crate::c_str::CStr;
+use crate::fs::File;
+use crate::header::fcntl;
+use crate::io::{self, BufRead, BufReader};
 
 pub enum Separator {
     Character(char),
diff --git a/src/fs.rs b/src/fs.rs
index 103dc8ec57e1bbd0781a2811fd4e4484cf9e4206..f30b1018134f42d69976af73b18b8d76c2f0aeb5 100644
--- a/src/fs.rs
+++ b/src/fs.rs
@@ -1,10 +1,10 @@
-use c_str::CStr;
+use crate::c_str::CStr;
 use core::ops::Deref;
-use header::fcntl::O_CREAT;
-use header::unistd::{SEEK_CUR, SEEK_END, SEEK_SET};
-use io;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::header::fcntl::O_CREAT;
+use crate::header::unistd::{SEEK_CUR, SEEK_END, SEEK_SET};
+use crate::io;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub struct File {
     pub fd: c_int,
diff --git a/src/header/_aio/mod.rs b/src/header/_aio/mod.rs
index ed4fc547716cfc9ee37b1ba5116aa953645cb4c9..b06459531c1f9428ac96cb91851d3a703fbe2568 100644
--- a/src/header/_aio/mod.rs
+++ b/src/header/_aio/mod.rs
@@ -1,5 +1,5 @@
-use header::time::{sigevent, timespec};
-use platform::types::*;
+use crate::header::time::{sigevent, timespec};
+use crate::platform::types::*;
 
 pub struct aiocb {
     pub aio_fildes: c_int,
diff --git a/src/header/_fenv/mod.rs b/src/header/_fenv/mod.rs
index 6aa92216f079f3901d8c1e183229da7761ee1fcc..2af01591ce14e48105d4f5e99b41c7d2833033ff 100644
--- a/src/header/_fenv/mod.rs
+++ b/src/header/_fenv/mod.rs
@@ -1,7 +1,7 @@
 //! fenv.h implementation for Redox, following
 //! http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fenv.h.html
 
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const FE_ALL_EXCEPT: c_int = 0;
 pub const FE_TONEAREST: c_int = 0;
diff --git a/src/header/_wctype/mod.rs b/src/header/_wctype/mod.rs
index ab8205497a5f80b9edcdf38a61eaffde7e55edc4..7162c19bbe37e85936b878edce87f52f827f99af 100644
--- a/src/header/_wctype/mod.rs
+++ b/src/header/_wctype/mod.rs
@@ -1,6 +1,6 @@
 //! wctype implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/wctype.h.html
 
-use platform::types::*;
+use crate::platform::types::*;
 
 // #[no_mangle]
 pub extern "C" fn iswalnum(wc: wint_t) -> c_int {
diff --git a/src/header/arpa_inet/mod.rs b/src/header/arpa_inet/mod.rs
index becf53368986df76eb1bd10e8b2121de82a05daa..0b1cac2aa43c13d94665bdd7a4a1d9c12e6a8570 100644
--- a/src/header/arpa_inet/mod.rs
+++ b/src/header/arpa_inet/mod.rs
@@ -3,13 +3,13 @@
 use core::str::FromStr;
 use core::{ptr, slice, str};
 
-use c_str::CStr;
-use header::errno::*;
-use header::netinet_in::{in_addr, in_addr_t, INADDR_NONE};
-use header::sys_socket::constants::*;
-use header::sys_socket::socklen_t;
-use platform;
-use platform::types::*;
+use crate::c_str::CStr;
+use crate::header::errno::*;
+use crate::header::netinet_in::{in_addr, in_addr_t, INADDR_NONE};
+use crate::header::sys_socket::constants::*;
+use crate::header::sys_socket::socklen_t;
+use crate::platform;
+use crate::platform::types::*;
 
 #[no_mangle]
 pub extern "C" fn htonl(hostlong: u32) -> u32 {
diff --git a/src/header/assert/mod.rs b/src/header/assert/mod.rs
index 8a073bb586e1df3dfaa2b0faba138a213d28e32e..82d8d6ee5b7ffe02e4aa4a7f568aa38d5738dcb9 100644
--- a/src/header/assert/mod.rs
+++ b/src/header/assert/mod.rs
@@ -1,9 +1,9 @@
 //! assert implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/assert.h.html
 
-use c_str::CStr;
+use crate::c_str::CStr;
 use core::fmt::Write;
-use header::{stdio, stdlib};
-use platform::types::*;
+use crate::header::{stdio, stdlib};
+use crate::platform::types::*;
 
 #[no_mangle]
 pub unsafe extern "C" fn __assert_fail(
diff --git a/src/header/ctype/mod.rs b/src/header/ctype/mod.rs
index 92aa17ca84186550ed4a9094081709432c4a43c4..eff8ba3edd2ea26f044ad2716ab0d06652b4a3da 100644
--- a/src/header/ctype/mod.rs
+++ b/src/header/ctype/mod.rs
@@ -1,6 +1,6 @@
 //! ctype implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/ctype.h.html
 
-use platform::types::*;
+use crate::platform::types::*;
 
 #[no_mangle]
 pub extern "C" fn isalnum(c: c_int) -> c_int {
diff --git a/src/header/dirent/mod.rs b/src/header/dirent/mod.rs
index e0f9eb26b091381742517bdcf8c6b2012379e712..a741c8624b870a9279cc317304b21c47131453c9 100644
--- a/src/header/dirent/mod.rs
+++ b/src/header/dirent/mod.rs
@@ -3,14 +3,14 @@
 use alloc::boxed::Box;
 use core::{mem, ptr};
 
-use c_str::CStr;
-use c_vec::CVec;
-use fs::File;
-use header::{errno, fcntl, stdlib, string};
-use io::{Seek, SeekFrom};
-use platform::types::*;
-use platform::{Pal, Sys};
-use platform;
+use crate::c_str::CStr;
+use crate::c_vec::CVec;
+use crate::fs::File;
+use crate::header::{errno, fcntl, stdlib, string};
+use crate::io::{Seek, SeekFrom};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
+use crate::platform;
 
 const DIR_BUF_SIZE: usize = mem::size_of::<dirent>() * 3;
 
diff --git a/src/header/dl-tls/mod.rs b/src/header/dl-tls/mod.rs
index 62f67cfcaeb8aebd450d4afd23464f059b55c12b..bf7b2d4b761d6a3fb2c3cb9939531b71250d6182 100644
--- a/src/header/dl-tls/mod.rs
+++ b/src/header/dl-tls/mod.rs
@@ -1,7 +1,7 @@
 //! dl-tls implementation for Redox
 
-use ld_so::tcb::Tcb;
-use platform::types::*;
+use crate::ld_so::tcb::Tcb;
+use crate::platform::types::*;
 
 #[repr(C)]
 pub struct dl_tls_index {
diff --git a/src/header/dlfcn/mod.rs b/src/header/dlfcn/mod.rs
index f0c895fbf1aff7d5b3d0239dfef2123d2fb366a8..76fdcd39707edf29e7dec21c1186b11dbb9ade1c 100644
--- a/src/header/dlfcn/mod.rs
+++ b/src/header/dlfcn/mod.rs
@@ -3,8 +3,8 @@
 use core::sync::atomic::{AtomicUsize, Ordering};
 use core::{ptr, str};
 
-use c_str::CStr;
-use platform::types::*;
+use crate::c_str::CStr;
+use crate::platform::types::*;
 
 pub const RTLD_LAZY: c_int = 0x0001;
 pub const RTLD_NOW: c_int = 0x0002;
diff --git a/src/header/errno/mod.rs b/src/header/errno/mod.rs
index a203373bda1e9a2eb07cd3c634c72a535f6872a5..e7a376f47eb996a802b27cadfcadb1a712adb34b 100644
--- a/src/header/errno/mod.rs
+++ b/src/header/errno/mod.rs
@@ -1,7 +1,7 @@
 //! errno implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/errno.h.html
 
-use platform;
-use platform::types::*;
+use crate::platform;
+use crate::platform::types::*;
 
 //TODO: Consider removing, provided for compatibility with newlib
 #[no_mangle]
diff --git a/src/header/fcntl/linux.rs b/src/header/fcntl/linux.rs
index ae1bcc97e589f73c9704cb996f8f473b24b8bd3f..0779a7ed50fc5ac10a86c1f86b7a1f9bf9d9a39c 100644
--- a/src/header/fcntl/linux.rs
+++ b/src/header/fcntl/linux.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const O_RDONLY: c_int = 0x0000;
 pub const O_WRONLY: c_int = 0x0001;
diff --git a/src/header/fcntl/mod.rs b/src/header/fcntl/mod.rs
index 1946c6bebb8e2887596ad706e2e070b984807774..0aba2606c7727fa3b62c75508942ef59223d7941 100644
--- a/src/header/fcntl/mod.rs
+++ b/src/header/fcntl/mod.rs
@@ -1,8 +1,8 @@
 //! fcntl implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/fcntl.h.html
 
-use c_str::CStr;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::CStr;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub use self::sys::*;
 
diff --git a/src/header/fcntl/redox.rs b/src/header/fcntl/redox.rs
index d8847aeea11ba1665d3f20f75a76a502018dc5e9..fc72796d01be2c160415d416052ec2b7115983a9 100644
--- a/src/header/fcntl/redox.rs
+++ b/src/header/fcntl/redox.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const O_RDONLY: c_int = 0x0001_0000;
 pub const O_WRONLY: c_int = 0x0002_0000;
diff --git a/src/header/float/mod.rs b/src/header/float/mod.rs
index 599ced2c9b15e1c2f0e8741abe6fbc7954b5d7ec..d429fc8d34668234795094cd18617029a24c0939 100644
--- a/src/header/float/mod.rs
+++ b/src/header/float/mod.rs
@@ -1,8 +1,8 @@
 //! float.h implementation for Redox, following
 //! http://pubs.opengroup.org/onlinepubs/7908799/xsh/float.h.html
 
-use header::_fenv::{fegetround, FE_TONEAREST};
-use platform::types::*;
+use crate::header::_fenv::{fegetround, FE_TONEAREST};
+use crate::platform::types::*;
 
 pub const FLT_RADIX: c_int = 2;
 
diff --git a/src/header/fnmatch/mod.rs b/src/header/fnmatch/mod.rs
index 92141b5abf6702325b21b317d2beb5e3f87056ba..4197b019b17dc0aca7740237530503b4ff72018b 100644
--- a/src/header/fnmatch/mod.rs
+++ b/src/header/fnmatch/mod.rs
@@ -4,7 +4,7 @@ use alloc::borrow::Cow;
 use alloc::vec::Vec;
 use core::slice;
 
-use platform::types::*;
+use crate::platform::types::*;
 use posix_regex::compile::{Collation, Range, Token};
 use posix_regex::PosixRegex;
 
diff --git a/src/header/getopt/mod.rs b/src/header/getopt/mod.rs
index 9739260dd7b1617182a6740f78a75b7b957341da..541c8362c09383ffbb28dfbd5df23a6f401901d3 100644
--- a/src/header/getopt/mod.rs
+++ b/src/header/getopt/mod.rs
@@ -1,9 +1,9 @@
 //! getopt implementation for relibc
 
 use core::ptr;
-use header::unistd::{optarg, opterr, optind, optopt};
-use header::{stdio, string};
-use platform::types::*;
+use crate::header::unistd::{optarg, opterr, optind, optopt};
+use crate::header::{stdio, string};
+use crate::platform::types::*;
 
 static mut CURRENT_OPT: *mut c_char = ptr::null_mut();
 
diff --git a/src/header/grp/mod.rs b/src/header/grp/mod.rs
index b0fcd33c48c0c370593a42091a505c3873703329..6c5b0c16d4d449ae4350535c0702985d1260b815 100644
--- a/src/header/grp/mod.rs
+++ b/src/header/grp/mod.rs
@@ -1,6 +1,6 @@
 //! grp implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/grp.h.html
 
-use platform::types::*;
+use crate::platform::types::*;
 
 #[repr(C)]
 pub struct group {
diff --git a/src/header/inttypes/mod.rs b/src/header/inttypes/mod.rs
index a418d0f991279625d56c01cf3f7f2479a70941e9..a568ecee5f253220bde1003d434f65f41454ec36 100644
--- a/src/header/inttypes/mod.rs
+++ b/src/header/inttypes/mod.rs
@@ -1,8 +1,8 @@
-use header::ctype;
-use header::errno::*;
-use header::stdlib::*;
-use platform;
-use platform::types::*;
+use crate::header::ctype;
+use crate::header::errno::*;
+use crate::header::stdlib::*;
+use crate::platform;
+use crate::platform::types::*;
 
 #[no_mangle]
 pub extern "C" fn imaxabs(i: intmax_t) -> intmax_t {
diff --git a/src/header/libgen/mod.rs b/src/header/libgen/mod.rs
index 5879603dffe545057876545a75f5690c52c91786..5117282f111ff0d0922b166d53a12c88254aa680 100644
--- a/src/header/libgen/mod.rs
+++ b/src/header/libgen/mod.rs
@@ -1,8 +1,8 @@
 //! libgen implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/libgen.h.html
 
-use platform::types::c_char;
+use crate::platform::types::c_char;
 
-use header::string::strlen;
+use crate::header::string::strlen;
 
 #[no_mangle]
 pub unsafe extern "C" fn basename(str: *mut c_char) -> *mut c_char {
diff --git a/src/header/locale/mod.rs b/src/header/locale/mod.rs
index d3a03c740bd17e73a7259701ed051178aa4b7a14..7697c446d02cc8696568e53db30214d5434ccd04 100644
--- a/src/header/locale/mod.rs
+++ b/src/header/locale/mod.rs
@@ -2,7 +2,7 @@
 
 use core::ptr;
 
-use platform::types::*;
+use crate::platform::types::*;
 
 const EMPTY_PTR: *const c_char = "\0" as *const _ as *const c_char;
 // Can't use &str because of the mutability
diff --git a/src/header/netdb/host.rs b/src/header/netdb/host.rs
index f6ba6306939051c47cc07c5f0bd6307de2f6753a..e5db6d80a341fa80e0b89f01cecd577c217bcf78 100644
--- a/src/header/netdb/host.rs
+++ b/src/header/netdb/host.rs
@@ -3,15 +3,15 @@ use alloc::str::SplitWhitespace;
 use alloc::vec::Vec;
 use core::{mem, ptr};
 
-use c_str::CString;
-use header::arpa_inet::inet_aton;
-use header::fcntl::O_RDONLY;
-use header::netinet_in::in_addr;
-use header::sys_socket::constants::AF_INET;
-use header::unistd::SEEK_SET;
-use platform::rlb::{Line, RawLineBuffer};
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::CString;
+use crate::header::arpa_inet::inet_aton;
+use crate::header::fcntl::O_RDONLY;
+use crate::header::netinet_in::in_addr;
+use crate::header::sys_socket::constants::AF_INET;
+use crate::header::unistd::SEEK_SET;
+use crate::platform::rlb::{Line, RawLineBuffer};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 use super::{bytes_to_box_str, hostent};
 
diff --git a/src/header/netdb/linux.rs b/src/header/netdb/linux.rs
index 60b6491466d8d1a0ac636841ef9b117ca49390ca..85126fba5c1330bae32dedd643cc0b8ba94ec94a 100644
--- a/src/header/netdb/linux.rs
+++ b/src/header/netdb/linux.rs
@@ -1,8 +1,8 @@
 use alloc::string::String;
-use c_str::CString;
-use fs::File;
-use header::fcntl;
-use io::{BufRead, BufReader};
+use crate::c_str::CString;
+use crate::fs::File;
+use crate::header::fcntl;
+use crate::io::{BufRead, BufReader};
 
 pub fn get_dns_server() -> String {
     let file = match File::open(&CString::new("/etc/resolv.conf").unwrap(), fcntl::O_RDONLY) {
diff --git a/src/header/netdb/lookup.rs b/src/header/netdb/lookup.rs
index fbf60d7f4c02c1e2f6061c47112002b239d35245..84e4c4c161443c98c9ab7058bd3105dbfae21ba3 100644
--- a/src/header/netdb/lookup.rs
+++ b/src/header/netdb/lookup.rs
@@ -3,17 +3,17 @@ use alloc::string::{String, ToString};
 use alloc::vec::{IntoIter, Vec};
 use core::mem;
 
-use platform::types::*;
-use platform::{Pal, Sys};
-
-use header::arpa_inet::htons;
-use header::errno::*;
-use header::netinet_in::{in_addr, sockaddr_in, IPPROTO_UDP};
-use header::sys_socket;
-use header::sys_socket::constants::{AF_INET, SOCK_DGRAM};
-use header::sys_socket::{sockaddr, socklen_t};
-use header::time;
-use header::time::timespec;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
+
+use crate::header::arpa_inet::htons;
+use crate::header::errno::*;
+use crate::header::netinet_in::{in_addr, sockaddr_in, IPPROTO_UDP};
+use crate::header::sys_socket;
+use crate::header::sys_socket::constants::{AF_INET, SOCK_DGRAM};
+use crate::header::sys_socket::{sockaddr, socklen_t};
+use crate::header::time;
+use crate::header::time::timespec;
 
 use super::dns::{Dns, DnsQuery};
 use super::sys::get_dns_server;
diff --git a/src/header/netdb/mod.rs b/src/header/netdb/mod.rs
index 504aee209bdd9a1ab51b3b30cbf3053872a127db..78141104010723c898a86640497d5136d3726b2e 100644
--- a/src/header/netdb/mod.rs
+++ b/src/header/netdb/mod.rs
@@ -10,20 +10,20 @@ use alloc::boxed::Box;
 use alloc::str::SplitWhitespace;
 use alloc::vec::Vec;
 
-use c_str::{CStr, CString};
-use header::arpa_inet::htons;
-use header::errno::*;
-use header::fcntl::O_RDONLY;
-use header::netinet_in::{in_addr, sockaddr_in, sockaddr_in6};
-use header::stdlib::atoi;
-use header::strings::strcasecmp;
-use header::sys_socket::constants::AF_INET;
-use header::sys_socket::{sa_family_t, sockaddr, socklen_t};
-use header::unistd::SEEK_SET;
-use platform;
-use platform::rlb::{Line, RawLineBuffer};
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::{CStr, CString};
+use crate::header::arpa_inet::htons;
+use crate::header::errno::*;
+use crate::header::fcntl::O_RDONLY;
+use crate::header::netinet_in::{in_addr, sockaddr_in, sockaddr_in6};
+use crate::header::stdlib::atoi;
+use crate::header::strings::strcasecmp;
+use crate::header::sys_socket::constants::AF_INET;
+use crate::header::sys_socket::{sa_family_t, sockaddr, socklen_t};
+use crate::header::unistd::SEEK_SET;
+use crate::platform;
+use crate::platform::rlb::{Line, RawLineBuffer};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 #[cfg(target_os = "linux")]
 #[path = "linux.rs"]
diff --git a/src/header/netdb/redox.rs b/src/header/netdb/redox.rs
index 4d813957b8ebdc2a554751ee0bd579dd5391078a..a6604d13b7d5b4609c0d65add822a6d331c9d990 100644
--- a/src/header/netdb/redox.rs
+++ b/src/header/netdb/redox.rs
@@ -1,8 +1,8 @@
 use alloc::string::String;
-use c_str::CString;
-use fs::File;
-use header::fcntl;
-use io::Read;
+use crate::c_str::CString;
+use crate::fs::File;
+use crate::header::fcntl;
+use crate::io::Read;
 
 pub fn get_dns_server() -> String {
     let mut string = String::new();
diff --git a/src/header/netinet_in/mod.rs b/src/header/netinet_in/mod.rs
index 807f5534a6cf63537c16e232c783c1da545b8394..4f7a109a8a1926ea7fd063a7fc71a2793df87455 100644
--- a/src/header/netinet_in/mod.rs
+++ b/src/header/netinet_in/mod.rs
@@ -1,7 +1,7 @@
 #![allow(non_camel_case_types)]
 
-use header::sys_socket::sa_family_t;
-use platform::types::*;
+use crate::header::sys_socket::sa_family_t;
+use crate::platform::types::*;
 
 pub type in_addr_t = u32;
 pub type in_port_t = u16;
diff --git a/src/header/netinet_tcp/mod.rs b/src/header/netinet_tcp/mod.rs
index fce0afc78e746334d50771de9ecf1b07c188583b..f3694c629a75440f9cf3a529e67f7cbfb2f6f5b2 100644
--- a/src/header/netinet_tcp/mod.rs
+++ b/src/header/netinet_tcp/mod.rs
@@ -1,3 +1,3 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const TCP_NODELAY: c_int = 1;
diff --git a/src/header/poll/mod.rs b/src/header/poll/mod.rs
index 0ca503473d1de34344512e6db5e2797db7f25185..40b67843c9796a7550b2d8d5354e06cba679cd90 100644
--- a/src/header/poll/mod.rs
+++ b/src/header/poll/mod.rs
@@ -2,11 +2,11 @@
 
 use core::{mem, slice};
 
-use fs::File;
-use header::sys_epoll::{epoll_create1, epoll_ctl, epoll_data, epoll_event, epoll_wait, EPOLLERR,
+use crate::fs::File;
+use crate::header::sys_epoll::{epoll_create1, epoll_ctl, epoll_data, epoll_event, epoll_wait, EPOLLERR,
                         EPOLLHUP, EPOLLIN, EPOLLNVAL, EPOLLOUT, EPOLLPRI, EPOLL_CLOEXEC,
                         EPOLL_CTL_ADD};
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const POLLIN: c_short = 0x001;
 pub const POLLPRI: c_short = 0x002;
diff --git a/src/header/pwd/mod.rs b/src/header/pwd/mod.rs
index dc7e0aabc7e5b66f3384b9b063de381101a5f133..c9d9ee8db76908d07c9bbb11786c23c5271a924c 100644
--- a/src/header/pwd/mod.rs
+++ b/src/header/pwd/mod.rs
@@ -2,11 +2,11 @@
 
 use core::ptr;
 
-use fs::File;
-use header::{errno, fcntl};
-use io::{BufRead, BufReader};
-use platform;
-use platform::types::*;
+use crate::fs::File;
+use crate::header::{errno, fcntl};
+use crate::io::{BufRead, BufReader};
+use crate::platform;
+use crate::platform::types::*;
 
 #[cfg(target_os = "linux")]
 mod linux;
diff --git a/src/header/regex/mod.rs b/src/header/regex/mod.rs
index f787678348119716ad0d220f239026b68a443345..1d5b5707f676c02f70aec0465f5d6b50c07bc48d 100644
--- a/src/header/regex/mod.rs
+++ b/src/header/regex/mod.rs
@@ -3,8 +3,8 @@
 use alloc::borrow::Cow;
 use alloc::vec::Vec;
 use core::{mem, ptr, slice};
-use header::string::strlen;
-use platform::types::*;
+use crate::header::string::strlen;
+use crate::platform::types::*;
 use posix_regex::compile::{Error as CompileError, Range, Token};
 use posix_regex::{PosixRegex, PosixRegexBuilder};
 
diff --git a/src/header/semaphore/mod.rs b/src/header/semaphore/mod.rs
index f1331a43813025387b57f72adb398f96f1f12bcd..505d6eba6f934666fdc6eb09955e674125e372cd 100644
--- a/src/header/semaphore/mod.rs
+++ b/src/header/semaphore/mod.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 #[repr(C)]
 #[derive(Copy)]
diff --git a/src/header/sgtty/mod.rs b/src/header/sgtty/mod.rs
index 6d474daa54c873064d73e414b4c984bfdd85209a..67eb3c9732781189216fbcb253dfc6966d3d7b0e 100644
--- a/src/header/sgtty/mod.rs
+++ b/src/header/sgtty/mod.rs
@@ -1,7 +1,7 @@
 //! sgtty implementation that won't work on redox because no ioctl
 
-use header::sys_ioctl::*;
-use platform::types::*;
+use crate::header::sys_ioctl::*;
+use crate::platform::types::*;
 
 #[no_mangle]
 pub extern "C" fn gtty(fd: c_int, out: *mut sgttyb) -> c_int {
diff --git a/src/header/signal/mod.rs b/src/header/signal/mod.rs
index 49db58cbc2517959125551c2c41ffb87c07f5441..c8d6c0e7b4f283353615a89f248afa4db629afa2 100644
--- a/src/header/signal/mod.rs
+++ b/src/header/signal/mod.rs
@@ -4,10 +4,10 @@ use core::{mem, ptr};
 
 use cbitset::BitSet;
 
-use header::errno;
-use platform;
-use platform::types::*;
-use platform::{PalSignal, Sys};
+use crate::header::errno;
+use crate::platform;
+use crate::platform::types::*;
+use crate::platform::{PalSignal, Sys};
 
 pub use self::sys::*;
 
diff --git a/src/header/stdio/constants.rs b/src/header/stdio/constants.rs
index 61322e1c3655c9c7203ed0289cb970f9fcd1336d..0d4346d94074ad1fa03b4e1b51a705c00900bf32 100644
--- a/src/header/stdio/constants.rs
+++ b/src/header/stdio/constants.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const EOF: c_int = -1;
 pub const BUFSIZ: c_int = 1024;
diff --git a/src/header/stdio/default.rs b/src/header/stdio/default.rs
index ceae34bd674b24cffc9cd8fd21d25ce13af466da..afb57dc7fd9d4263f19e51a86d2130fb09a9aefa 100644
--- a/src/header/stdio/default.rs
+++ b/src/header/stdio/default.rs
@@ -2,10 +2,10 @@ use super::{constants, Buffer, BUFSIZ, FILE};
 use core::cell::UnsafeCell;
 use core::ptr;
 
-use fs::File;
-use io::LineWriter;
-use platform::types::*;
-use sync::Mutex;
+use crate::fs::File;
+use crate::io::LineWriter;
+use crate::platform::types::*;
+use crate::sync::Mutex;
 
 pub struct GlobalFile(UnsafeCell<FILE>);
 impl GlobalFile {
diff --git a/src/header/stdio/ext.rs b/src/header/stdio/ext.rs
index 35ad92ee63b39df0780ec83d664fdf3d1ec04eee..b66eb42f64a4d68221a282a81e8b1d7e0d60b61f 100644
--- a/src/header/stdio/ext.rs
+++ b/src/header/stdio/ext.rs
@@ -1,5 +1,5 @@
-use header::stdio::{FILE, F_NORD, F_NOWR};
-use platform::types::*;
+use crate::header::stdio::{FILE, F_NORD, F_NOWR};
+use crate::platform::types::*;
 
 #[no_mangle]
 pub extern "C" fn __fpending(stream: *mut FILE) -> size_t {
diff --git a/src/header/stdio/getdelim.rs b/src/header/stdio/getdelim.rs
index 5778504e10edef2e17ed8ee7513e91350b0d9af6..ff273c9207b99a4a18bfff9d26871ba52a4ce7f1 100644
--- a/src/header/stdio/getdelim.rs
+++ b/src/header/stdio/getdelim.rs
@@ -1,10 +1,10 @@
 use alloc::vec::Vec;
 use core::ptr;
 
-use header::stdio::FILE;
-use header::stdlib;
-use io::BufRead;
-use platform::types::*;
+use crate::header::stdio::FILE;
+use crate::header::stdlib;
+use crate::io::BufRead;
+use crate::platform::types::*;
 
 #[no_mangle]
 pub unsafe extern "C" fn __getline(
diff --git a/src/header/stdio/helpers.rs b/src/header/stdio/helpers.rs
index 0b5c80a015934ad54e7ef45943ca55fa9f0a02dd..66743908c97c80c63b36680f958c4ee78bb5d663 100644
--- a/src/header/stdio/helpers.rs
+++ b/src/header/stdio/helpers.rs
@@ -1,13 +1,13 @@
 use alloc::boxed::Box;
 
-use fs::File;
-use header::errno;
-use header::fcntl::*;
-use header::string::strchr;
-use io::LineWriter;
-use platform;
-use platform::types::*;
-use sync::Mutex;
+use crate::fs::File;
+use crate::header::errno;
+use crate::header::fcntl::*;
+use crate::header::string::strchr;
+use crate::io::LineWriter;
+use crate::platform;
+use crate::platform::types::*;
+use crate::sync::Mutex;
 
 use super::constants::*;
 use super::{Buffer, FILE};
diff --git a/src/header/stdio/mod.rs b/src/header/stdio/mod.rs
index c5b8e9327b5641fd58ed6782567ff2247e68544c..683753d9211efdf99ca3bd22b93d9e55f601f4b6 100644
--- a/src/header/stdio/mod.rs
+++ b/src/header/stdio/mod.rs
@@ -8,17 +8,17 @@ use core::fmt::Write as WriteFmt;
 use core::ops::{Deref, DerefMut};
 use core::{fmt, mem, ptr, slice, str};
 
-use c_str::CStr;
-use fs::File;
-use header::errno::{self, STR_ERROR};
-use header::string::{self, strlen};
-use header::{fcntl, stdlib, unistd};
-use io::{self, BufRead, LineWriter, Read, Write};
-use platform;
-use platform::types::*;
-use platform::{errno, WriteByte};
-use platform::{Pal, Sys};
-use sync::Mutex;
+use crate::c_str::CStr;
+use crate::fs::File;
+use crate::header::errno::{self, STR_ERROR};
+use crate::header::string::{self, strlen};
+use crate::header::{fcntl, stdlib, unistd};
+use crate::io::{self, BufRead, LineWriter, Read, Write};
+use crate::platform;
+use crate::platform::types::*;
+use crate::platform::{errno, WriteByte};
+use crate::platform::{Pal, Sys};
+use crate::sync::Mutex;
 
 pub use self::constants::*;
 mod constants;
diff --git a/src/header/stdio/printf.rs b/src/header/stdio/printf.rs
index ed9144a1cb4d01dd02073ae33e42bfd06b847b6d..dfd1fb486c9ac8817cc2a5e489d2843c7535f3d7 100644
--- a/src/header/stdio/printf.rs
+++ b/src/header/stdio/printf.rs
@@ -5,7 +5,7 @@ use alloc::vec::Vec;
 use core::ffi::VaList;
 use core::ops::Range;
 use core::{char, cmp, f64, fmt, slice};
-use io::{self, Write};
+use crate::io::{self, Write};
 
 use crate::header::errno::EILSEQ;
 use crate::platform::types::*;
diff --git a/src/header/stdio/scanf.rs b/src/header/stdio/scanf.rs
index 1d3d5e2106782547bac05f3b8001835ae75eee14..0475cfeca696008aca34da383cd50b2924cec91b 100644
--- a/src/header/stdio/scanf.rs
+++ b/src/header/stdio/scanf.rs
@@ -1,8 +1,8 @@
 use alloc::string::String;
 use alloc::vec::Vec;
 use core::ffi::VaList as va_list;
-use io::Read;
-use platform::types::*;
+use crate::io::Read;
+use crate::platform::types::*;
 
 #[derive(PartialEq, Eq)]
 enum IntKind {
diff --git a/src/header/stdlib/lcg48.rs b/src/header/stdlib/lcg48.rs
index a425110b04cb5e6247e3c293f2ca72940332e81b..d41cb34521aaab9ec639e53ca51db929731bddd4 100644
--- a/src/header/stdlib/lcg48.rs
+++ b/src/header/stdlib/lcg48.rs
@@ -1,6 +1,6 @@
 //! Helper functions for pseudorandom number generation using LCG, see https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/functions/drand48.html
 
-use platform::types::*;
+use crate::platform::types::*;
 
 /* The default element buffer for the linear congruential generator's
  * sequence. Implemented using a c_ushort array for consistency between
diff --git a/src/header/stdlib/mod.rs b/src/header/stdlib/mod.rs
index f5c5ea6090210d0b8e309e36d968b20c5bb58936..186833cb2f8fb24402c35a5687c9df92b9e9cc9b 100644
--- a/src/header/stdlib/mod.rs
+++ b/src/header/stdlib/mod.rs
@@ -7,20 +7,20 @@ use rand::prng::XorShiftRng;
 use rand::rngs::JitterRng;
 use rand::{Rng, SeedableRng};
 
-use c_str::CStr;
-use fs::File;
-use header::errno::*;
-use header::fcntl::*;
-use header::limits;
-use header::string::*;
-use header::time::constants::CLOCK_MONOTONIC;
-use header::time::timespec;
-use header::unistd::{sysconf, _SC_PAGESIZE};
-use header::wchar::*;
-use header::{ctype, errno, unistd};
-use platform;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::CStr;
+use crate::fs::File;
+use crate::header::errno::*;
+use crate::header::fcntl::*;
+use crate::header::limits;
+use crate::header::string::*;
+use crate::header::time::constants::CLOCK_MONOTONIC;
+use crate::header::time::timespec;
+use crate::header::unistd::{sysconf, _SC_PAGESIZE};
+use crate::header::wchar::*;
+use crate::header::{ctype, errno, unistd};
+use crate::platform;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 mod lcg48;
 mod sort;
diff --git a/src/header/stdlib/sort.rs b/src/header/stdlib/sort.rs
index 24631746beed2fb5aa85e08b1768c7327db85053..60506d6d7c3c4a1525f44bbcbaf2d372febd774a 100644
--- a/src/header/stdlib/sort.rs
+++ b/src/header/stdlib/sort.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub fn introsort(
     base: *mut c_char,
diff --git a/src/header/string/mod.rs b/src/header/string/mod.rs
index e8fd84d5a39d5dce29e0183430419f797072d5a5..d9dba53608a80b343f07ad69bf2d0d76f0a77c85 100644
--- a/src/header/string/mod.rs
+++ b/src/header/string/mod.rs
@@ -4,10 +4,10 @@ use core::{mem, ptr, slice, usize};
 
 use cbitset::BitSet256;
 
-use header::errno::*;
-use header::signal;
-use platform;
-use platform::types::*;
+use crate::header::errno::*;
+use crate::header::signal;
+use crate::platform;
+use crate::platform::types::*;
 
 #[no_mangle]
 pub unsafe extern "C" fn memccpy(
diff --git a/src/header/strings/mod.rs b/src/header/strings/mod.rs
index a0fb773e51a3ccf5f23969eceec37cbd061ca54d..b4beb800faebbded8dce540f1ab9283a902d4bd8 100644
--- a/src/header/strings/mod.rs
+++ b/src/header/strings/mod.rs
@@ -2,8 +2,8 @@
 
 use core::ptr;
 
-use header::{ctype, string};
-use platform::types::*;
+use crate::header::{ctype, string};
+use crate::platform::types::*;
 
 #[no_mangle]
 pub unsafe extern "C" fn bcmp(first: *const c_void, second: *const c_void, n: size_t) -> c_int {
diff --git a/src/header/sys_auxv/mod.rs b/src/header/sys_auxv/mod.rs
index be95453e818a6b2c5a9517c04b1cda82e28865d6..3e191883f92d8955b245a538c8db6700b21578fa 100644
--- a/src/header/sys_auxv/mod.rs
+++ b/src/header/sys_auxv/mod.rs
@@ -1,6 +1,6 @@
 //! sys/auxv.h implementation
 
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const AT_HWCAP: usize = 16;
 
diff --git a/src/header/sys_epoll/linux.rs b/src/header/sys_epoll/linux.rs
index 654d4ff5cea04ac946b47da3ca6485f0d4ac5d9c..4f17c0c19bf93b6ac8606968a37d2b5a45e2d352 100644
--- a/src/header/sys_epoll/linux.rs
+++ b/src/header/sys_epoll/linux.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const EPOLL_CLOEXEC: c_int = 0x8_0000;
 
diff --git a/src/header/sys_epoll/mod.rs b/src/header/sys_epoll/mod.rs
index f868d56615bcaddd1614e8688f050bb82240ea9e..74e9f5004a3643d83b0f4e60cbb1184128181356 100644
--- a/src/header/sys_epoll/mod.rs
+++ b/src/header/sys_epoll/mod.rs
@@ -2,9 +2,9 @@
 
 use core::ptr;
 
-use header::signal::sigset_t;
-use platform::types::*;
-use platform::{PalEpoll, Sys};
+use crate::header::signal::sigset_t;
+use crate::platform::types::*;
+use crate::platform::{PalEpoll, Sys};
 
 pub use self::sys::*;
 
diff --git a/src/header/sys_epoll/redox.rs b/src/header/sys_epoll/redox.rs
index d1172fbb35e4c5745e0f21f78e87cc73e958596c..ecba6a3947622ae97eb4d6a534759748953b61f7 100644
--- a/src/header/sys_epoll/redox.rs
+++ b/src/header/sys_epoll/redox.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const EPOLL_CLOEXEC: c_int = 0x0100_0000;
 
diff --git a/src/header/sys_file/mod.rs b/src/header/sys_file/mod.rs
index 80a99855c40d74f3e54ece0b0b85c02f0d5a9b3e..10a41f6475614937a31e781cff0d9ed89921919b 100644
--- a/src/header/sys_file/mod.rs
+++ b/src/header/sys_file/mod.rs
@@ -1,7 +1,7 @@
 //! sys/file.h implementation
 
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub const LOCK_SH: usize = 1;
 pub const LOCK_EX: usize = 2;
diff --git a/src/header/sys_ioctl/linux.rs b/src/header/sys_ioctl/linux.rs
index e5f39c682898db036c7112af1b98fb6ca5788853..8f6cd210f4c0f591bd6eaed6880ec2bd74d4479e 100644
--- a/src/header/sys_ioctl/linux.rs
+++ b/src/header/sys_ioctl/linux.rs
@@ -1,5 +1,5 @@
-use platform::types::*;
-use platform::Sys;
+use crate::platform::types::*;
+use crate::platform::Sys;
 
 #[no_mangle]
 pub unsafe extern "C" fn ioctl(fd: c_int, request: c_ulong, out: *mut c_void) -> c_int {
diff --git a/src/header/sys_ioctl/mod.rs b/src/header/sys_ioctl/mod.rs
index ee5a6080fe85d608a4d8fdc3449b61437f17772a..54d5f29aefde264db22d4b18543233c551cf0ae7 100644
--- a/src/header/sys_ioctl/mod.rs
+++ b/src/header/sys_ioctl/mod.rs
@@ -1,6 +1,6 @@
 //! ioctl implementation for linux
 
-use platform::types::*;
+use crate::platform::types::*;
 
 // This is used from sgtty
 #[repr(C)]
diff --git a/src/header/sys_ioctl/redox.rs b/src/header/sys_ioctl/redox.rs
index 005a4d73aebb290c967c64685af729ca8b965f70..5b489d7813bd608e479f8664ccccd7f769103b55 100644
--- a/src/header/sys_ioctl/redox.rs
+++ b/src/header/sys_ioctl/redox.rs
@@ -1,11 +1,11 @@
 use core::{mem, slice};
 use syscall;
 
-use header::errno;
-use header::termios;
-use platform;
-use platform::e;
-use platform::types::*;
+use crate::header::errno;
+use crate::header::termios;
+use crate::platform;
+use crate::platform::e;
+use crate::platform::types::*;
 
 use super::winsize;
 
diff --git a/src/header/sys_mman/linux.rs b/src/header/sys_mman/linux.rs
index f034963e25cfd8b3754ffb49c889a88514824769..43e04de579b1259f9ee7fa709bd1458c232cd727 100644
--- a/src/header/sys_mman/linux.rs
+++ b/src/header/sys_mman/linux.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const PROT_READ: c_int = 0x0001;
 pub const PROT_WRITE: c_int = 0x0002;
diff --git a/src/header/sys_mman/mod.rs b/src/header/sys_mman/mod.rs
index b3949b7884ab80c525897533ae77d829e1968f86..87b6349c998d5908cc12c0d25869d56635040471 100644
--- a/src/header/sys_mman/mod.rs
+++ b/src/header/sys_mman/mod.rs
@@ -1,7 +1,7 @@
-use c_str::{CStr, CString};
-use header::{fcntl, unistd};
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::{CStr, CString};
+use crate::header::{fcntl, unistd};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub use self::sys::*;
 
diff --git a/src/header/sys_mman/redox.rs b/src/header/sys_mman/redox.rs
index 28c5d3b9b8b823285156a62183368fe25871de5c..c58f53fe830b7d42236e0e289eb3ac402cd7d98a 100644
--- a/src/header/sys_mman/redox.rs
+++ b/src/header/sys_mman/redox.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const PROT_NONE: c_int = 0x0000;
 pub const PROT_EXEC: c_int = 0x0001;
diff --git a/src/header/sys_ptrace/mod.rs b/src/header/sys_ptrace/mod.rs
index 9a54c0725fe0e38fd9daf7ef7b85857016238ca9..0cc453639438aa0bf25146522f6bf2ea6e7f47a2 100644
--- a/src/header/sys_ptrace/mod.rs
+++ b/src/header/sys_ptrace/mod.rs
@@ -1,8 +1,8 @@
 //! ptrace compatibility layer for Redox OS
 
 use core::ffi::VaList;
-use platform::types::*;
-use platform::{PalPtrace, Sys};
+use crate::platform::types::*;
+use crate::platform::{PalPtrace, Sys};
 
 pub const PTRACE_TRACEME: c_int = 0;
 pub const PTRACE_PEEKTEXT: c_int = 1;
diff --git a/src/header/sys_select/mod.rs b/src/header/sys_select/mod.rs
index 79869a82e48a055b127236c8a78458436d59bfdd..1fdb18fdc164b056cbd8f47158e9a82d6dc39dd2 100644
--- a/src/header/sys_select/mod.rs
+++ b/src/header/sys_select/mod.rs
@@ -4,13 +4,13 @@ use core::mem;
 
 use cbitset::BitSet;
 
-use fs::File;
-use header::errno;
-use header::sys_epoll::{epoll_create1, epoll_ctl, epoll_data, epoll_event, epoll_wait, EPOLLERR,
+use crate::fs::File;
+use crate::header::errno;
+use crate::header::sys_epoll::{epoll_create1, epoll_ctl, epoll_data, epoll_event, epoll_wait, EPOLLERR,
                         EPOLLIN, EPOLLOUT, EPOLL_CLOEXEC, EPOLL_CTL_ADD};
-use header::sys_time::timeval;
-use platform;
-use platform::types::*;
+use crate::header::sys_time::timeval;
+use crate::platform;
+use crate::platform::types::*;
 
 // fd_set is also defined in C because cbindgen is incompatible with mem::size_of booo
 
diff --git a/src/header/sys_socket/constants.rs b/src/header/sys_socket/constants.rs
index 25ff27da89cfc6a0518db82d065b016c3def49d0..4e24e66142aa44c25ba78918ebd87bb275409b91 100644
--- a/src/header/sys_socket/constants.rs
+++ b/src/header/sys_socket/constants.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const SOCK_STREAM: c_int = 1;
 pub const SOCK_DGRAM: c_int = 2;
diff --git a/src/header/sys_socket/mod.rs b/src/header/sys_socket/mod.rs
index 4cb44cdd46212baf52ac913ddf7518c5aec0ca07..34fff2814c75de3039bc381fe8bbfe08aa76a71b 100644
--- a/src/header/sys_socket/mod.rs
+++ b/src/header/sys_socket/mod.rs
@@ -2,8 +2,8 @@
 
 use core::ptr;
 
-use platform::types::*;
-use platform::{PalSocket, Sys};
+use crate::platform::types::*;
+use crate::platform::{PalSocket, Sys};
 
 pub mod constants;
 
diff --git a/src/header/sys_stat/mod.rs b/src/header/sys_stat/mod.rs
index b858add05501e80990d0c0075e0fec47e4acffdd..f68a8de5b0f48f0030acbad80365011722107042 100644
--- a/src/header/sys_stat/mod.rs
+++ b/src/header/sys_stat/mod.rs
@@ -1,10 +1,10 @@
 //! stat implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html
 
-use c_str::CStr;
-use header::fcntl::{O_NOFOLLOW, O_PATH};
-use header::time::timespec;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::CStr;
+use crate::header::fcntl::{O_NOFOLLOW, O_PATH};
+use crate::header::time::timespec;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub const S_IFMT: c_int = 0o0_170_000;
 
diff --git a/src/header/sys_statvfs/mod.rs b/src/header/sys_statvfs/mod.rs
index 6da8f6e438c4ef67190f0ef864222216ca9e69e9..21f6661b561f6f4ef2c3175c28155b24ac572649 100644
--- a/src/header/sys_statvfs/mod.rs
+++ b/src/header/sys_statvfs/mod.rs
@@ -1,9 +1,9 @@
 //! statvfs implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstatvfs.h.html
 
-use c_str::CStr;
-use header::fcntl::O_PATH;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::CStr;
+use crate::header::fcntl::O_PATH;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 //pub const ST_RDONLY
 //pub const ST_NOSUID
diff --git a/src/header/sys_time/mod.rs b/src/header/sys_time/mod.rs
index c961a7a42c6e99b39d3b25792f804ed1cc2a8e56..6a53f138153da6b6d18cdae7f06ccd9e7cd27b44 100644
--- a/src/header/sys_time/mod.rs
+++ b/src/header/sys_time/mod.rs
@@ -1,9 +1,9 @@
 //! sys/time implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/systime.h.html
 
-use c_str::CStr;
-use header::time::timespec;
-use platform::types::*;
-use platform::{Pal, PalSignal, Sys};
+use crate::c_str::CStr;
+use crate::header::time::timespec;
+use crate::platform::types::*;
+use crate::platform::{Pal, PalSignal, Sys};
 
 pub const ITIMER_REAL: c_int = 0;
 pub const ITIMER_VIRTUAL: c_int = 1;
diff --git a/src/header/sys_timeb/mod.rs b/src/header/sys_timeb/mod.rs
index b3b6713a25ec8641117a775accb56031cdde890e..1b7291d5171f715a94b7a3e598ad4b9474cf2b58 100644
--- a/src/header/sys_timeb/mod.rs
+++ b/src/header/sys_timeb/mod.rs
@@ -1,7 +1,7 @@
 //! sys/time implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/systime.h.html
 
-use header::sys_time::{gettimeofday, timeval, timezone};
-use platform::types::*;
+use crate::header::sys_time::{gettimeofday, timeval, timezone};
+use crate::platform::types::*;
 
 #[repr(C)]
 #[derive(Default)]
diff --git a/src/header/sys_uio/mod.rs b/src/header/sys_uio/mod.rs
index 2beda033e58af6bc863fa0dcd8dfa178cef63f06..baee631463d76fb1c70fefdf5fd7d873df860451 100644
--- a/src/header/sys_uio/mod.rs
+++ b/src/header/sys_uio/mod.rs
@@ -3,9 +3,9 @@
 use alloc::vec::Vec;
 use core::slice;
 
-use header::{errno, unistd};
-use platform;
-use platform::types::*;
+use crate::header::{errno, unistd};
+use crate::platform;
+use crate::platform::types::*;
 
 pub const IOV_MAX: c_int = 1024;
 
diff --git a/src/header/sys_un/mod.rs b/src/header/sys_un/mod.rs
index 41f55107be232a4868f510d987defd7eef06190d..86ebd4c4b29df25c4edaddc06787ae38807bd183 100644
--- a/src/header/sys_un/mod.rs
+++ b/src/header/sys_un/mod.rs
@@ -1,5 +1,5 @@
-use header::sys_socket::sa_family_t;
-use platform::types::*;
+use crate::header::sys_socket::sa_family_t;
+use crate::platform::types::*;
 
 #[repr(C)]
 pub struct sockaddr_un {
diff --git a/src/header/sys_user/mod.rs b/src/header/sys_user/mod.rs
index 2af4f4927a665b980816efe134b5f2d6c6b3f911..37ef15544fb14ddc972886b2f165d070fa6a60ad 100644
--- a/src/header/sys_user/mod.rs
+++ b/src/header/sys_user/mod.rs
@@ -1,6 +1,6 @@
 //! A part of the ptrace compatibility for Redox OS
 
-use platform::types::*;
+use crate::platform::types::*;
 
 #[repr(C)]
 pub struct user_fpregs_struct {
diff --git a/src/header/sys_utsname/mod.rs b/src/header/sys_utsname/mod.rs
index db7168cc18aa980b9986057c48641da00165cb7e..ce4c18294e2c1322d3b7c42fbf17f0ed304c1849 100644
--- a/src/header/sys_utsname/mod.rs
+++ b/src/header/sys_utsname/mod.rs
@@ -1,7 +1,7 @@
 //! sys/utsname implementation, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysutsname.h.html
 
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub const UTSLENGTH: usize = 65;
 
diff --git a/src/header/sys_wait/mod.rs b/src/header/sys_wait/mod.rs
index 903c7482964443bd409921bc533be53042d3df63..d96d1c4c537756dc10a48c6f9f121cb3b8dc36bf 100644
--- a/src/header/sys_wait/mod.rs
+++ b/src/header/sys_wait/mod.rs
@@ -2,8 +2,8 @@
 //! http://pubs.opengroup.org/onlinepubs/7908799/xsh/syswait.h.html
 
 //use header::sys_resource::rusage;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub const WNOHANG: c_int = 1;
 pub const WUNTRACED: c_int = 2;
diff --git a/src/header/termios/mod.rs b/src/header/termios/mod.rs
index 3172646f2b9552e82697c352314b669a4a3df35a..a304fdafe5ed2b342ae88b2997d96b6e9a17c5bc 100644
--- a/src/header/termios/mod.rs
+++ b/src/header/termios/mod.rs
@@ -1,9 +1,9 @@
 //! termios implementation, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/termios.h.html
 
-use header::errno;
-use header::sys_ioctl;
-use platform;
-use platform::types::*;
+use crate::header::errno;
+use crate::header::sys_ioctl;
+use crate::platform;
+use crate::platform::types::*;
 
 pub type cc_t = u8;
 pub type speed_t = u32;
diff --git a/src/header/time/constants.rs b/src/header/time/constants.rs
index 679ce1778ad4f87fb0a22c86056b49dd088c93f0..8e8bd80449f19b72dc0732b593fd16d75c46976f 100644
--- a/src/header/time/constants.rs
+++ b/src/header/time/constants.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub use self::sys::*;
 
diff --git a/src/header/time/linux.rs b/src/header/time/linux.rs
index 4f8f992025eed412294c00deafe805654d42f876..a5ee7903d4d0c2011104ae9102eeb368769bde6e 100644
--- a/src/header/time/linux.rs
+++ b/src/header/time/linux.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const CLOCK_REALTIME: c_int = 0;
 pub const CLOCK_MONOTONIC: c_int = 1;
diff --git a/src/header/time/mod.rs b/src/header/time/mod.rs
index 1e1af39ab219058339313a6577d12f672beea217..e7a0e37261780cd23bc1653e37e4b9607cbb4990 100644
--- a/src/header/time/mod.rs
+++ b/src/header/time/mod.rs
@@ -1,9 +1,9 @@
 //! time implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/time.h.html
 
-use header::errno::EIO;
-use platform;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::header::errno::EIO;
+use crate::platform;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 use self::constants::*;
 
diff --git a/src/header/time/redox.rs b/src/header/time/redox.rs
index 4e8a5d5e48793c2a23143160f7368471ca1c5bca..df1e3cdfd156347e940b7abb1f4f8787602ff650 100644
--- a/src/header/time/redox.rs
+++ b/src/header/time/redox.rs
@@ -1,4 +1,4 @@
-use platform::types::*;
+use crate::platform::types::*;
 
 pub const CLOCK_REALTIME: c_int = 1;
 pub const CLOCK_MONOTONIC: c_int = 4;
diff --git a/src/header/time/strftime.rs b/src/header/time/strftime.rs
index 6e74d3f0efb21eb44025e8f6ce6567bb72cacddb..8a98cd6b24cdfdd1f3e6ab48365a679a28b43e69 100644
--- a/src/header/time/strftime.rs
+++ b/src/header/time/strftime.rs
@@ -1,7 +1,7 @@
 use alloc::string::String;
 
-use platform::types::*;
-use platform::{self, WriteByte};
+use crate::platform::types::*;
+use crate::platform::{self, WriteByte};
 
 use super::tm;
 
diff --git a/src/header/unistd/brk.rs b/src/header/unistd/brk.rs
index e34178aa8dc78d78ea206b65bb57c58ef14531ed..e54c22ab917bc50e2a9b7a11c8883e00e473ccf5 100644
--- a/src/header/unistd/brk.rs
+++ b/src/header/unistd/brk.rs
@@ -1,9 +1,9 @@
 use core::ptr;
 
-use header::errno::ENOMEM;
-use platform;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::header::errno::ENOMEM;
+use crate::platform;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 static mut BRK: *mut c_void = ptr::null_mut();
 
diff --git a/src/header/unistd/getopt.rs b/src/header/unistd/getopt.rs
index d08f43779713390cca984920de3eede60f589812..1cf2aceac57c3c72152d5381b9e2cf9e71a356f2 100644
--- a/src/header/unistd/getopt.rs
+++ b/src/header/unistd/getopt.rs
@@ -2,8 +2,8 @@
 
 use core::ptr;
 
-use header::getopt;
-use platform::types::*;
+use crate::header::getopt;
+use crate::platform::types::*;
 
 #[allow(non_upper_case_globals)]
 #[no_mangle]
diff --git a/src/header/unistd/mod.rs b/src/header/unistd/mod.rs
index 564033201ee79a8c486706dd331cf6a6d10bb512..945e2acd0369ce5e85b172226ed56e52e28f26ee 100644
--- a/src/header/unistd/mod.rs
+++ b/src/header/unistd/mod.rs
@@ -4,17 +4,17 @@ use core::convert::TryFrom;
 use core::{mem, ptr, slice};
 
 use alloc::collections::LinkedList;
-use c_str::CStr;
-use header::errno;
-use header::limits;
-use header::stdlib::getenv;
-use header::sys_ioctl;
-use header::sys_time;
-use header::termios;
-use header::time::timespec;
-use platform;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::CStr;
+use crate::header::errno;
+use crate::header::limits;
+use crate::header::stdlib::getenv;
+use crate::header::sys_ioctl;
+use crate::header::sys_time;
+use crate::header::termios;
+use crate::header::time::timespec;
+use crate::platform;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 pub use self::brk::*;
 pub use self::getopt::*;
diff --git a/src/header/unistd/pathconf.rs b/src/header/unistd/pathconf.rs
index 767d6f61426c2ff79d357f8258d364bc7d9e79b7..c5081f0a39f0ce3bdbf54bb0addaed50e0bdc512 100644
--- a/src/header/unistd/pathconf.rs
+++ b/src/header/unistd/pathconf.rs
@@ -1,6 +1,6 @@
-use header::errno;
-use platform;
-use platform::types::*;
+use crate::header::errno;
+use crate::platform;
+use crate::platform::types::*;
 
 pub const _PC_LINK_MAX: c_int = 0;
 pub const _PC_MAX_CANON: c_int = 1;
diff --git a/src/header/unistd/sysconf.rs b/src/header/unistd/sysconf.rs
index c29056024b66af35950834deb7cd2986da54897d..5a6178136308f7fcbb2c37ea75f9148a588720cc 100644
--- a/src/header/unistd/sysconf.rs
+++ b/src/header/unistd/sysconf.rs
@@ -1,6 +1,6 @@
-use header::errno;
-use platform;
-use platform::types::*;
+use crate::header::errno;
+use crate::platform;
+use crate::platform::types::*;
 
 // POSIX.1 {
 pub const _SC_ARG_MAX: c_int = 0;
diff --git a/src/header/utime/mod.rs b/src/header/utime/mod.rs
index 6633f0b6f7941f3a818f2bacff808e3fc603d207..8650faa3ce869e670997f0535960e51b36360f6e 100644
--- a/src/header/utime/mod.rs
+++ b/src/header/utime/mod.rs
@@ -1,9 +1,9 @@
 //! utime implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/utime.h.html
 
-use c_str::CStr;
-use header::time::timespec;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::c_str::CStr;
+use crate::header::time::timespec;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 #[repr(C)]
 #[derive(Clone)]
diff --git a/src/header/wchar/mod.rs b/src/header/wchar/mod.rs
index 35a9662c9af7e86a088696ad9b261f11e5d3977b..71df7ec8d59ebccc5fa5aeb52160bab954d4bdb3 100644
--- a/src/header/wchar/mod.rs
+++ b/src/header/wchar/mod.rs
@@ -3,14 +3,14 @@
 use core::ffi::VaList as va_list;
 use core::{char, mem, ptr, usize};
 
-use header::ctype::isspace;
-use header::errno::ERANGE;
-use header::stdio::*;
-use header::stdlib::MB_CUR_MAX;
-use header::string;
-use header::time::*;
-use platform;
-use platform::types::*;
+use crate::header::ctype::isspace;
+use crate::header::errno::ERANGE;
+use crate::header::stdio::*;
+use crate::header::stdlib::MB_CUR_MAX;
+use crate::header::string;
+use crate::header::time::*;
+use crate::platform;
+use crate::platform::types::*;
 
 mod utf8;
 
diff --git a/src/header/wchar/utf8.rs b/src/header/wchar/utf8.rs
index 1e1c87ec5d75cd20166e8cf6d06f7f58e424d73d..b104a4885cb1cc863b49243c93c5a177d7253c6b 100644
--- a/src/header/wchar/utf8.rs
+++ b/src/header/wchar/utf8.rs
@@ -3,9 +3,9 @@
 
 use core::{char, slice, str, usize};
 
-use header::errno;
-use platform;
-use platform::types::*;
+use crate::header::errno;
+use crate::platform;
+use crate::platform::types::*;
 
 use super::mbstate_t;
 
diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs
index aebd2a7980b611aece888c399bc0ba08f3788793..20a4b1cb69525180458a58a888b32fd053a39be6 100644
--- a/src/ld_so/linker.rs
+++ b/src/ld_so/linker.rs
@@ -6,11 +6,11 @@ use core::{mem, ptr, slice};
 use goblin::elf::{program_header, reloc, sym, Elf};
 use goblin::error::{Error, Result};
 
-use c_str::CString;
-use fs::File;
-use header::{fcntl, sys_mman, unistd};
-use io::Read;
-use platform::types::c_void;
+use crate::c_str::CString;
+use crate::fs::File;
+use crate::header::{fcntl, sys_mman, unistd};
+use crate::io::Read;
+use crate::platform::types::c_void;
 
 use super::tcb::{Master, Tcb};
 use super::PAGE_SIZE;
diff --git a/src/ld_so/start.rs b/src/ld_so/start.rs
index a5ae510dcec2cf51f9a78fae01b66dd4c841b74b..74e3f5492a4a21d430f3975ac4296d607bf84898 100644
--- a/src/ld_so/start.rs
+++ b/src/ld_so/start.rs
@@ -1,8 +1,8 @@
 // Start code adapted from https://gitlab.redox-os.org/redox-os/relibc/blob/master/src/start.rs
 
-use c_str::CStr;
-use header::unistd;
-use platform::types::c_char;
+use crate::c_str::CStr;
+use crate::header::unistd;
+use crate::platform::types::c_char;
 
 use super::linker::Linker;
 use crate::start::Stack;
diff --git a/src/ld_so/tcb.rs b/src/ld_so/tcb.rs
index 4fe769b78ff5509caa55c7193aaccd507ac95757..3c31d1f9f7ee65181585ed6d32593c925545c082 100644
--- a/src/ld_so/tcb.rs
+++ b/src/ld_so/tcb.rs
@@ -3,7 +3,7 @@ use core::ops::Range;
 use core::{mem, ptr, slice};
 use goblin::error::{Error, Result};
 
-use header::sys_mman;
+use crate::header::sys_mman;
 
 use super::PAGE_SIZE;
 
@@ -170,7 +170,7 @@ impl Tcb {
     /// OS specific code to create a new TLS and TCB - Redox
     #[cfg(target_os = "redox")]
     unsafe fn os_new(size: usize) -> Result<(&'static mut [u8], &'static mut [u8])> {
-        use header::unistd;
+        use crate::header::unistd;
         //TODO: better method of finding fs offset
         let pid = unistd::getpid();
         let tcb_addr = 0xB000_0000 + pid as usize * PAGE_SIZE;
diff --git a/src/lib.rs b/src/lib.rs
index 280aaadfab115fd17bce41d6b2461df3c95a28b8..58385d86d1b0031bfdbcaa8cce26eeca665ea4c5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -64,7 +64,7 @@ pub mod platform;
 pub mod start;
 pub mod sync;
 
-use platform::{Allocator, Pal, Sys};
+use crate::platform::{Allocator, Pal, Sys};
 
 #[global_allocator]
 static ALLOCATOR: Allocator = Allocator;
diff --git a/src/platform/linux/epoll.rs b/src/platform/linux/epoll.rs
index 3b95d42030ec641e66e2fd24256d4bc7045ccb11..4fc3dc3ad04c4800d99de7dcfeffaf44ca4e45e0 100644
--- a/src/platform/linux/epoll.rs
+++ b/src/platform/linux/epoll.rs
@@ -1,8 +1,8 @@
 use super::super::types::*;
 use super::super::PalEpoll;
 use super::{e, Sys};
-use header::signal::sigset_t;
-use header::sys_epoll::epoll_event;
+use crate::header::signal::sigset_t;
+use crate::header::sys_epoll::epoll_event;
 
 impl PalEpoll for Sys {
     fn epoll_create1(flags: c_int) -> c_int {
diff --git a/src/platform/linux/mod.rs b/src/platform/linux/mod.rs
index edd7be4bc77497d06c2404dbd068a379cb26f356..066bac4050088657548394399f65e15bd5ef693d 100644
--- a/src/platform/linux/mod.rs
+++ b/src/platform/linux/mod.rs
@@ -3,16 +3,16 @@ use core_io::Write;
 
 use super::types::*;
 use super::{errno, Pal};
-use c_str::CStr;
-use header::dirent::dirent;
-use header::signal::SIGCHLD;
+use crate::c_str::CStr;
+use crate::header::dirent::dirent;
+use crate::header::signal::SIGCHLD;
 // use header::sys_resource::rusage;
-use header::sys_stat::stat;
-use header::sys_statvfs::statvfs;
-use header::sys_time::{timeval, timezone};
+use crate::header::sys_stat::stat;
+use crate::header::sys_statvfs::statvfs;
+use crate::header::sys_time::{timeval, timezone};
 // use header::sys_times::tms;
-use header::sys_utsname::utsname;
-use header::time::timespec;
+use crate::header::sys_utsname::utsname;
+use crate::header::time::timespec;
 
 mod epoll;
 mod ptrace;
diff --git a/src/platform/linux/signal.rs b/src/platform/linux/signal.rs
index 7e47729beaeda37ac402790004a32d3b620e1c5b..3baee351ec2afcf45fe882e49e650bb12d912c90 100644
--- a/src/platform/linux/signal.rs
+++ b/src/platform/linux/signal.rs
@@ -3,8 +3,8 @@ use core::mem;
 use super::super::types::*;
 use super::super::PalSignal;
 use super::{e, Sys};
-use header::signal::{sigaction, sigset_t, stack_t};
-use header::sys_time::itimerval;
+use crate::header::signal::{sigaction, sigset_t, stack_t};
+use crate::header::sys_time::itimerval;
 
 impl PalSignal for Sys {
     fn getitimer(which: c_int, out: *mut itimerval) -> c_int {
diff --git a/src/platform/linux/socket.rs b/src/platform/linux/socket.rs
index 96caab3208d7bbcac65973c592dd6b5ed1e242a2..8c5a0e19fb7d4a4f909c28bbd6f8f1b970a873a0 100644
--- a/src/platform/linux/socket.rs
+++ b/src/platform/linux/socket.rs
@@ -1,7 +1,7 @@
 use super::super::types::*;
 use super::super::PalSocket;
 use super::{e, Sys};
-use header::sys_socket::{sockaddr, socklen_t};
+use crate::header::sys_socket::{sockaddr, socklen_t};
 
 impl PalSocket for Sys {
     unsafe fn accept(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int {
diff --git a/src/platform/mod.rs b/src/platform/mod.rs
index 979899e99cfeafa5fa5f5a497e0ca0af371b8290..3d6c1c1818f0525f07de53b4470aaddb9dee734c 100644
--- a/src/platform/mod.rs
+++ b/src/platform/mod.rs
@@ -1,6 +1,6 @@
 use alloc::vec::Vec;
 use core::{fmt, ptr};
-use io::{self, Read, Write};
+use crate::io::{self, Read, Write};
 
 pub use self::allocator::*;
 
diff --git a/src/platform/pal/epoll.rs b/src/platform/pal/epoll.rs
index 2451de317c4248ebd13cd0769da087684a684cb8..96ed150b5337dc6259dafe7b7e86d358110ee432 100644
--- a/src/platform/pal/epoll.rs
+++ b/src/platform/pal/epoll.rs
@@ -1,7 +1,7 @@
 use super::super::types::*;
 use super::super::Pal;
-use header::signal::sigset_t;
-use header::sys_epoll::epoll_event;
+use crate::header::signal::sigset_t;
+use crate::header::sys_epoll::epoll_event;
 
 pub trait PalEpoll: Pal {
     fn epoll_create1(flags: c_int) -> c_int;
diff --git a/src/platform/pal/mod.rs b/src/platform/pal/mod.rs
index fde80078878882f63ba2105168b6ad18ac60e63c..4bab4374005430f213202fd1c26445c98f84e7f2 100644
--- a/src/platform/pal/mod.rs
+++ b/src/platform/pal/mod.rs
@@ -1,11 +1,11 @@
 use super::types::*;
-use c_str::CStr;
-use header::dirent::dirent;
-use header::sys_stat::stat;
-use header::sys_statvfs::statvfs;
-use header::sys_time::{timeval, timezone};
-use header::sys_utsname::utsname;
-use header::time::timespec;
+use crate::c_str::CStr;
+use crate::header::dirent::dirent;
+use crate::header::sys_stat::stat;
+use crate::header::sys_statvfs::statvfs;
+use crate::header::sys_time::{timeval, timezone};
+use crate::header::sys_utsname::utsname;
+use crate::header::time::timespec;
 
 pub use self::epoll::PalEpoll;
 mod epoll;
diff --git a/src/platform/pal/signal.rs b/src/platform/pal/signal.rs
index d014ce89ee0bf4ab0f7cbdb7774cd6ac5a6a7ed1..a033033067724806a47ab416784ba99c888f851f 100644
--- a/src/platform/pal/signal.rs
+++ b/src/platform/pal/signal.rs
@@ -1,7 +1,7 @@
 use super::super::types::*;
 use super::super::Pal;
-use header::signal::{sigaction, sigset_t, stack_t};
-use header::sys_time::itimerval;
+use crate::header::signal::{sigaction, sigset_t, stack_t};
+use crate::header::sys_time::itimerval;
 
 pub trait PalSignal: Pal {
     fn getitimer(which: c_int, out: *mut itimerval) -> c_int;
diff --git a/src/platform/pal/socket.rs b/src/platform/pal/socket.rs
index d5970f856802dc8ecdcf2a5d58872c123a8f5af1..e74de7d792e14867c641103b43dac12687443591 100644
--- a/src/platform/pal/socket.rs
+++ b/src/platform/pal/socket.rs
@@ -1,6 +1,6 @@
 use super::super::types::*;
 use super::super::Pal;
-use header::sys_socket::{sockaddr, socklen_t};
+use crate::header::sys_socket::{sockaddr, socklen_t};
 
 pub trait PalSocket: Pal {
     unsafe fn accept(socket: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int;
diff --git a/src/platform/pte.rs b/src/platform/pte.rs
index 2bb61dd5550cb43db71016c3276b4f7f380f1cfb..99409a479142617ec3602fbf15f1e67c035d3bf2 100644
--- a/src/platform/pte.rs
+++ b/src/platform/pte.rs
@@ -5,12 +5,12 @@ use alloc::collections::BTreeMap;
 use core::sync::atomic::{AtomicU32, Ordering};
 use core::{intrinsics, ptr};
 
-use header::sys_mman;
-use header::time::timespec;
-use ld_so::tcb::{Master, Tcb};
-use platform::types::{c_int, c_uint, c_void, pid_t, size_t};
-use platform::{Pal, Sys};
-use sync::Mutex;
+use crate::header::sys_mman;
+use crate::header::time::timespec;
+use crate::ld_so::tcb::{Master, Tcb};
+use crate::platform::types::{c_int, c_uint, c_void, pid_t, size_t};
+use crate::platform::{Pal, Sys};
+use crate::sync::Mutex;
 
 pub struct Semaphore {
     lock: Mutex<()>,
diff --git a/src/platform/redox/epoll.rs b/src/platform/redox/epoll.rs
index 88ba6c5dee3c348c63562fd5ea1f049f9ca35efa..91e57900b722a82b96fe8f135b6e3d794c69630d 100644
--- a/src/platform/redox/epoll.rs
+++ b/src/platform/redox/epoll.rs
@@ -3,13 +3,13 @@ use super::super::{Pal, PalEpoll};
 use super::Sys;
 
 use core::{mem, slice};
-use fs::File;
-use header::errno::*;
-use header::fcntl::*;
-use header::signal::sigset_t;
-use header::sys_epoll::*;
-use io::prelude::*;
-use platform;
+use crate::fs::File;
+use crate::header::errno::*;
+use crate::header::fcntl::*;
+use crate::header::signal::sigset_t;
+use crate::header::sys_epoll::*;
+use crate::io::prelude::*;
+use crate::platform;
 use syscall::data::{Event, TimeSpec};
 use syscall::flag::EVENT_READ;
 
diff --git a/src/platform/redox/extra.rs b/src/platform/redox/extra.rs
index b451e0a4f3bd04489215b5e615db6e759d851683..674d246d3247226bced67c9d0d0f536b74536149 100644
--- a/src/platform/redox/extra.rs
+++ b/src/platform/redox/extra.rs
@@ -1,7 +1,7 @@
 use core::{ptr, slice};
 
-use platform::sys::e;
-use platform::types::*;
+use crate::platform::sys::e;
+use crate::platform::types::*;
 
 #[no_mangle]
 pub unsafe extern "C" fn redox_fpath(fd: c_int, buf: *mut c_void, count: size_t) -> ssize_t {
diff --git a/src/platform/redox/mod.rs b/src/platform/redox/mod.rs
index 76e272f4c2a016ea2f473fb7157f1bfad6871bb8..4043be467e2750e860ad99b7933723f405e20cab 100644
--- a/src/platform/redox/mod.rs
+++ b/src/platform/redox/mod.rs
@@ -6,21 +6,21 @@ use syscall::data::StatVfs as redox_statvfs;
 use syscall::data::TimeSpec as redox_timespec;
 use syscall::{self, Result};
 
-use c_str::{CStr, CString};
-use fs::File;
-use header::dirent::dirent;
-use header::errno::{EINVAL, EIO, EPERM, ERANGE};
-use header::fcntl;
-use header::sys_mman::MAP_ANON;
-use header::sys_stat::stat;
-use header::sys_statvfs::statvfs;
-use header::sys_time::{timeval, timezone};
-use header::sys_wait;
-use header::sys_utsname::{utsname, UTSLENGTH};
-use header::time::timespec;
-use header::unistd::{F_OK, R_OK, W_OK, X_OK};
-use io::prelude::*;
-use io::{self, BufReader, SeekFrom};
+use crate::c_str::{CStr, CString};
+use crate::fs::File;
+use crate::header::dirent::dirent;
+use crate::header::errno::{EINVAL, EIO, EPERM, ERANGE};
+use crate::header::fcntl;
+use crate::header::sys_mman::MAP_ANON;
+use crate::header::sys_stat::stat;
+use crate::header::sys_statvfs::statvfs;
+use crate::header::sys_time::{timeval, timezone};
+use crate::header::sys_wait;
+use crate::header::sys_utsname::{utsname, UTSLENGTH};
+use crate::header::time::timespec;
+use crate::header::unistd::{F_OK, R_OK, W_OK, X_OK};
+use crate::io::prelude::*;
+use crate::io::{self, BufReader, SeekFrom};
 
 use super::types::*;
 use super::{errno, Pal, Read};
@@ -230,7 +230,7 @@ impl Pal for Sys {
         };
         let mut _interpreter_path = None;
         if let Some(interpreter) = interpreter {
-            let mut cstring = match CString::new(interpreter) {
+            let cstring = match CString::new(interpreter) {
                 Ok(cstring) => cstring,
                 Err(_) => return -1,
             };
diff --git a/src/platform/redox/signal.rs b/src/platform/redox/signal.rs
index c22f53d5b5c16d2de53fd3cf48f3f71787410403..b46b1bc5c78f6e7cb07319ce30bdbadab2fafe92 100644
--- a/src/platform/redox/signal.rs
+++ b/src/platform/redox/signal.rs
@@ -4,10 +4,10 @@ use syscall;
 use super::super::types::*;
 use super::super::{Pal, PalSignal};
 use super::{e, Sys};
-use header::errno::EINVAL;
-use header::signal::{sigaction, sigset_t, stack_t};
-use header::sys_time::{itimerval, ITIMER_REAL};
-use platform::errno;
+use crate::header::errno::EINVAL;
+use crate::header::signal::{sigaction, sigset_t, stack_t};
+use crate::header::sys_time::{itimerval, ITIMER_REAL};
+use crate::platform::errno;
 
 impl PalSignal for Sys {
     fn getitimer(which: c_int, out: *mut itimerval) -> c_int {
diff --git a/src/platform/redox/socket.rs b/src/platform/redox/socket.rs
index 50fa64aeb543e1d0fb6d6d1a3e895bf0c640e262..8313efc9875c1c127184c0709e391911dea84ad2 100644
--- a/src/platform/redox/socket.rs
+++ b/src/platform/redox/socket.rs
@@ -5,10 +5,10 @@ use syscall::{self, Result};
 use super::super::types::*;
 use super::super::{errno, Pal, PalSocket};
 use super::{e, Sys};
-use header::netinet_in::{in_port_t, sockaddr_in};
-use header::sys_socket::constants::*;
-use header::sys_socket::{sockaddr, socklen_t};
-use header::sys_time::timeval;
+use crate::header::netinet_in::{in_port_t, sockaddr_in};
+use crate::header::sys_socket::constants::*;
+use crate::header::sys_socket::{sockaddr, socklen_t};
+use crate::header::sys_time::timeval;
 
 macro_rules! bind_or_connect {
     (bind $path:expr) => {
diff --git a/src/platform/rlb.rs b/src/platform/rlb.rs
index b341cbc98f096ab1f298ffde6418c7d1d0ecde68..211e21dcb32d48b7d1fcd4d72548986added076f 100644
--- a/src/platform/rlb.rs
+++ b/src/platform/rlb.rs
@@ -1,9 +1,9 @@
 use alloc::vec::Vec;
 
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
-use header::unistd::{lseek, SEEK_SET};
+use crate::header::unistd::{lseek, SEEK_SET};
 /// Implements an `Iterator` which returns on either newline or EOF.
 #[derive(Clone)]
 pub struct RawLineBuffer {
diff --git a/src/start.rs b/src/start.rs
index e3c02fbb6359a14f49e47e8aad308ca52e8537c8..73d7efeb57bb4e40a37bc4ca20b8efbac884bd74 100644
--- a/src/start.rs
+++ b/src/start.rs
@@ -1,11 +1,11 @@
 use alloc::vec::Vec;
 use core::{intrinsics, ptr};
 
-use header::{stdio, stdlib};
-use ld_so;
-use platform;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::header::{stdio, stdlib};
+use crate::ld_so;
+use crate::platform;
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 #[repr(C)]
 pub struct Stack {
diff --git a/src/sync/mod.rs b/src/sync/mod.rs
index 081a377e7370e881c55109302f03d2771a8d4193..ffd227b7173721a13c487f344e32f69d321a09d6 100644
--- a/src/sync/mod.rs
+++ b/src/sync/mod.rs
@@ -8,8 +8,8 @@ use core::cell::UnsafeCell;
 use core::ops::Deref;
 use core::sync::atomic;
 use core::sync::atomic::AtomicI32 as AtomicInt;
-use platform::types::*;
-use platform::{Pal, Sys};
+use crate::platform::types::*;
+use crate::platform::{Pal, Sys};
 
 const FUTEX_WAIT: c_int = 0;
 const FUTEX_WAKE: c_int = 1;
diff --git a/src/sync/mutex.rs b/src/sync/mutex.rs
index 4a251d4cd648bec66339fb84cf4663758e774065..e2c25bb0e4a12e08b2c2d70b9784df5280d716d7 100644
--- a/src/sync/mutex.rs
+++ b/src/sync/mutex.rs
@@ -2,7 +2,7 @@ use super::{AtomicLock, AttemptStatus};
 use core::cell::UnsafeCell;
 use core::ops::{Deref, DerefMut};
 use core::sync::atomic::Ordering::SeqCst;
-use platform::types::*;
+use crate::platform::types::*;
 
 const UNLOCKED: c_int = 0;
 const LOCKED: c_int = 1;
diff --git a/src/sync/once.rs b/src/sync/once.rs
index dfefaf9762aa418f374580336e4a3033654889cb..83fc6be3e837991f0dd680a5382620d42f70a725 100644
--- a/src/sync/once.rs
+++ b/src/sync/once.rs
@@ -2,7 +2,7 @@ use super::{AtomicLock, AttemptStatus};
 use core::cell::UnsafeCell;
 use core::mem::MaybeUninit;
 use core::sync::atomic::Ordering::SeqCst;
-use platform::types::*;
+use crate::platform::types::*;
 
 const UNINITIALIZED: c_int = 0;
 const INITIALIZING: c_int = 1;