first pass at change function

seems a little brute force, can probably make this simpler
refactored change function to be simpler
Merge branch 'make_change'

* make_change:
  refactored change function to be simpler
  first pass at change function