some fix, make more understanding