refactor
hack a constructor