let Fire.extend return result class instead of super class. add Fire.merge