added events, removed async dep, +docs