Worked on Hardware Subsystem

Made a lot of changes to the hardware subsystem. More needs to be done,
made comments on a lot of code. Some code is just the method shell not
inner parts yet.