finalize implementation of the new subtyping