streamline test, be more flexible with interface.
rough cut