Hierarchical Self Replication