First, AtomDecorator, ResidueDecorator etc. now inherit from MolecularHierarchyDecorator, on Javi's suggestion. This saves a lot of typing in most cases. Some existing code may break, but fixing it is simply a matter of removing a call the MHD::create (since a previous call to AtomDecorator::create added all the necessary data). See the change history for more details.
Second, I propose renaming MolecularHierarchyDecorator to HierarchyDecorator since it is in the atom namespace already. This would save a ton of typing as MolecularHierarchyDecorator is a bit ridiculously long. And, with the exception of people like me who do "using namespace IMP::atom", all user code could be updated with sed.
Thirdly, I propose removing coordinates from AtomDecorator. The reasons for this are mostly philosophical: we are trying to get away from people being fixed on atomic coordinates and it is only due to quantum mechanical details which have no bearing on what we do that they make any more sense than coordinates for any other level of the atom::Hierarchy. Also, having them makes the AtomDecorator a bit of a mess since it has to inherit from two other decorators.