generalizing method