extracting #replace to HashExtensions
[ref] extracting PrettyInspect and ClassMethods
always override replace method