Changed API to be more explicit
Extracted independent parts into own files
Performance test now runs on 1m nodes, instead of 400k