Why is this method public?  Always use most limited visibility possible.   Actually, I would not bother with this method, but just make this the definition of run().