support composite ID