cleanup
+ cycle traverse implementation