In object-oriented programming, the adoption of modules as mixins provides a second axis of modularity. Furthermore, support for aspect-oriented programming introduces a third such axis. In this paper we define criteria under which a feature should be placed in a given unit of modularity and investigate the degree to which the presence of multiple dimensions of modularity affects existing refactoring strategies. We reason about the dilemmas involved and we provide guidelines for applying existing refactoring strategies in order to support the above criteria. We adopt Ruby and Aquarium as example technologies in order to provide an environment with classes, modules and aspects.