Fully implement the optional parameters