made Person abstract