restructure, separate storage elements definition from elements kind definition