tightened things up a bit
can update each platform independently
added some code comments