tests for the whole thing