Implemented Cycles, need to improve it.