random stuff, including C3 for discrete