refactor + add event-related methods
refactor + add loading thread