add read mechanisms, tested okay, be careful of concurrent access to some data (not done yet)