New dataclasses, still need to be completed but functional for use as far as compiler can tell