the ideal defined
some optional parameters added