incremental changes. a bit indicisive on how to implement this algorithm. it's a simple one it just gets really ugly