big refactor. starting to phase out the original Elements class