Ignore try-catch and catch semantics
Do not catch any exception, simply propagate them
Solve now returns whether a path exists
Properly set dependencies on source directories