elaborated on joes function