Collection<PyElement> (@NotNull final PyClass from, @NotNull final Collection<PyMemberInfo<PyElement>> members, final PyClass @NotNull ... to) { final Collection<PyElement> result = new ArrayList<>(); final Collection<PyElement> elements = fetchElements(members); for (final PyElement element : elements) { final Property property = getProperty(from, element); final Collection<PyFunction> functions = getAllFunctions(property); result.addAll(MethodsManager.moveMethods(from, functions, false, to)); final PyTargetExpression definitionSite = property.getDefinitionSite(); if (definitionSite != null) { final PyAssignmentStatement assignmentStatement = PsiTreeUtil.getParentOfType(definitionSite, PyAssignmentStatement.class); result.addAll(ClassFieldsManager.moveAssignmentsImpl(from, Collections.singleton(assignmentStatement), to)); } } return result; }