combining vm documentation branch with working kernel branch