implemented option functions