Refactor make_method() function
Fix cached_property bug

The bug was caused by using id() as hash function.