Removed gate type.  Now inherited type is determined through dynamic pointer casts