stop using System.exit