started making a printing function to we can do some testing, it works, but not the easiest to reason about