Adding tests and tweaking
iterating