put type cycles machinery in place, missing actual algo