Add testing, lots more work