implemented most CSAC functionality