added cycle validation