generalized some methods