work for dependency free & normalize form