finished first section -- still need to connect this
back to abstraction.