fireAsync made optional