# Refactoring Object Teams programs

Significant work has been put into supporting the automated refactoring of OT/J code. The following refactorings take into account the Object Teams-specific relationships (implicit role inheritance, team nesting, role-base bindings and method bindings).

- Extract Method
- Move Method
- Pull Up applicable to method or field
- Push Down applicable to method or field
- Rename applicable to: project, source folder, package, type, method, field.
  When trying to rename a team package you'll be asked to rename the team class instead.

Additionally, specific refactorings for OT/J are being developed. Currently these are implemented:

- Extract Callin
  Extract a block of code in a given base method into a role method plus the necessary callin binding.
- Inline Callin
  Inverse of the above, merge a callin-bound role method into the bound base method.
- Move to Role File
  Move an in-line role into its own role file 1.2.5