[FIX] improve dispose()