!third parameter is a or c;