elaborated on method definition