Implemented type dependencies and internal this$ removal