Allow creating systems by passing a constructor