Micro Prototype: a minimal object prototype system for ruby