tests need improving, still working on them