Before we go on I want to introduce the sloop package:
The sloop package (think “sail the seas of OOP”) provides a number of helpers that fill in missing pieces in base R. The first of these is
sloop::otype(). It makes it easy to figure out the OOP system used by a wild-caught object:
otype(1:10) #>  "base" otype(mtcars) #>  "S3" stats4::mle(function(x = 1) (x - 2) ^ 2) mle_obj <-otype(mle_obj) #>  "S4"
Use this function to figure out which chapter to read to understand how to work with an existing object.