[~TASK] Implementing event framework