Separating out the things needed by Elemental --- to be frank, we haven't used Elemental heavily, so it's fine