Generalized some base objects like Gate