added do method, cleaned up some tests