added general functionality except for reading attempts