added optional lazy paramenter