Evolvable agents, a fine grained approach for distributed evolutionary computing: Walking towards the peer-to-peer computing frontiers