added dispose method