it checks inside itself to see if it's already running