implemented full IO from plan
All the pins needed will be provided on init and be used when reading and writing.  Note: this still needs to be debugged.