added async and defer options