Bloc

missing the checkInvariant i still not sure what is it ... except that all done