uses options if present