Atom types module

As discussed on mailing list ...