Extract a caller class
Eliminate usage of public_send
Refactor get_attribute