@finish the constructor of candidate