putting some tests together but first some refactors to get it going