Things got a bit too sloppy during the rush to complete the prototype in time for Nepal, so we're going to go back over and clean up these abstractions to achieve the following objectives:
Readable libraries
Break up monolithic classes and move to more functional logic
Reduce overall function sizes and try to adhere as faithfully as possible to "one function, one job"
Reasonable and intuitive divisions of responsibility (i.e. configure_GPIO() should do all the work necessary to configure a GPIO, even if it's a special case like an alternate function)
Make debugging and following the flow of information through the system easy to understand
Things got a bit too sloppy during the rush to complete the prototype in time for Nepal, so we're going to go back over and clean up these abstractions to achieve the following objectives:
configure_GPIO()
should do all the work necessary to configure a GPIO, even if it's a special case like an alternate function)