implemented 3 new methods. buggy