improved methods, added events