modify complex methods