New swingworker implementation