completed adding most data structures that might be required