implemented most data storage