diff --git a/homework4/main.py b/homework4/main.py
index ed77fa7..a5b8435 100644
--- a/homework4/main.py
+++ b/homework4/main.py
@@ -1,100 +1,114 @@
 #!/bin/env python3
 
+import os
+from os import sys
 
-import sys
-import argparse
-sys.path.append("/Users/carloperuzzo/scientific_programming_4_eng/homework_sp4e_peruzzo_sáezuribe/homework4/cmake-build-debug")
+# find pypart.so in the subdirectories
+def findInSubdirectory(filename, subdirectory=''):
+    if subdirectory:
+        path = subdirectory
+    else:
+        path = os.getcwd()
+    for root, dirs, names in os.walk(path):
+        if filename in names:
+            return sys.path.append(root)
+    raise 'Library pypart not found. ' \
+          'Call the shared library containing the particle code as pypart.so and store in the' \
+          ' same directory of this python script or in any of the subdirectoryies'
 
+findInSubdirectory("pypart.so", subdirectory='')
+
+import argparse
 import pypart
 from pypart import MaterialPointsFactory, ParticlesFactoryInterface
 from pypart import PingPongBallsFactory, PlanetsFactory
 from pypart import CsvWriter
 from pypart import ComputeTemperature
 from pypart import ComputeGravity
 from pypart import ComputeVerletIntegration
 # help(pypart)
 
 def main(nsteps,freq,filename,particle_type,timestep):
 
     #print(pypart.__file__)
 
     if particle_type == "planet":
         PlanetsFactory.getInstance()
     elif particle_type == "ping_pong":
         PingPongBallsFactory.getInstance()
     elif particle_type == "material_point":
         MaterialPointsFactory.getInstance()
     else:
         print("Unknown particle type: ", particle_type)
         sys.exit(-1)
 
     factory = ParticlesFactoryInterface.getInstance()
 
     def createComputes(self, timestep):
 
         if particle_type == "planet":
     
             try:
                 compute_grav = ComputeGravity()
                 compute_verlet = ComputeVerletIntegration(timestep)
         
                 G = 6.67384e-11 # m^3 * kg^-1 * s^-2
                 UA = 149597870.700 # km
                 earth_mass = 5.97219e24 # kg
                 G /= (UA * 1e3)**3 # UA^3 * kg^-1 * s^-2
                 G *= earth_mass    # UA^3 * earth_mass^-1 * s^-2
                 G *= (60*60*24)**2 # UA^3 * earth_mass^-1 * day^-2
         
                 compute_grav.setG(G)
                 compute_verlet.addInteraction(compute_grav)
                 self.system_evolution.addCompute(compute_verlet)
             
             except Exception as e:
                 help(compute_grav)
                 raise e
         
         elif particle_type == 'material_point':
         
             try:
                 compute_temp = ComputeTemperature()
                 compute_temp.conductivity = 1
                 compute_temp.L = 2
                 compute_temp.capacity = 1
                 compute_temp.density = 1
                 compute_temp.deltat = 1
                 self.system_evolution.addCompute(compute_temp)
             except Exception as e:
                 help(compute_temp)
                 raise e
 
     evol = factory.createSimulation(filename, timestep, createComputes)
 
     dumper = CsvWriter("out.csv")
     dumper.write(evol.getSystem())
 
     evol.setNSteps(nsteps)
     evol.setDumpFreq(freq)
     evol.evolve()
 
 if __name__ == "__main__":
 
     parser = argparse.ArgumentParser(description='Particles code')
     parser.add_argument('nsteps', type=int,
                         help='specify the number of steps to perform')
     parser.add_argument('freq', type=int,
                         help='specify the frequency for dumps')
     parser.add_argument('filename', type=str,
                         help='start/input filename')
     parser.add_argument('particle_type', type=str,
                         help='particle type')
     parser.add_argument('timestep', type=float,
                         help='timestep')
     
     args = parser.parse_args()
     nsteps = args.nsteps
     freq = args.freq
     filename = args.filename
     particle_type = args.particle_type
     timestep = args.timestep
 
     main(nsteps,freq,filename,particle_type,timestep)