move the implementation that wait event to Board method