define constructors, rearrange traits