Only use and call public methods

Requires ruby 1.9 for #public_methods & #public_send, but there's already the 1.9 hash syntax in the file so I'm guessing that's :ok:.