Intermediate checkin - breaking functionality into separate modules and adding tests for package management, server communication, bootfile location and process control.