category choice and some constraints