This document discusses improving the Java type system by adding behavioral assertions. It describes how assertions can be added for fields, methods, constructors, and on method entry/exit. Fields are handled by injecting code to track writes. Method assertions are added by wrapping the original method. Constructor assertions are added by inserting code before the body. Entry/exit assertions require injecting code at both the start and end of the method. The approach aims to not break original program functionality while checking assertions. Examples are provided for each case.