cycles parsing bug fixed
added equality tests
tiny cleanup