diff --git a/examples/kernels b/examples/kernels
index 6fcb7d8905a05538e27c395fed908b180b2071bf..e72996fd08a40e994249df2a2595b170cb44bfe3 100644
--- a/examples/kernels
+++ b/examples/kernels
@@ -1,834 +1,846 @@
 digraph AST {
 	node [color=lightblue2 style=filled]
 	size="6,6"
-	n139866028692368 [label=Block]
-	n139866028640632 [label=ParticleFor]
-	n139866028692368 -> n139866028640632
-	n139866028694664 [label=ParticleFor]
-	n139866028692368 -> n139866028694664
-	n139866028640632 [label=ParticleFor]
-	n139866028694720 [label="Iter(0)"]
-	n139866028640632 -> n139866028694720
-	n139866028694888 [label=Block]
-	n139866028640632 -> n139866028694888
-	n139866028694776 [label=0]
-	n139866028640632 -> n139866028694776
-	n139866028694832 [label=0]
-	n139866028640632 -> n139866028694832
-	n139866028694720 [label="Iter(0)"]
-	n139866028694888 [label=Block]
-	n139866028695056 [label=For]
-	n139866028694888 -> n139866028695056
-	n139866028695336 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028695336 -> n139866028694720
-	n139866028691808 [label=neighborlist_capacity]
-	n139866028695336 -> n139866028691808
-	n139866028691808 [label=neighborlist_capacity]
-	n139866028692480 [label=PropertyAccess]
-	n139866028639904 [label=position]
-	n139866028692480 -> n139866028639904
-	n139866028694720 [label="Iter(0)"]
-	n139866028692480 -> n139866028694720
-	n139866028388816 [label="*"]
-	n139866028692480 -> n139866028388816
-	n139866028390552 [label="+"]
-	n139866028692480 -> n139866028390552
-	n139866028392120 [label="+"]
-	n139866028692480 -> n139866028392120
-	n139866028639904 [label=position]
-	n139866028388816 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028388816 -> n139866028694720
-	n139866028388872 [label=3]
-	n139866028388816 -> n139866028388872
-	n139866028388872 [label=3]
-	n139866028390552 [label="+"]
-	n139866028390384 [label="*"]
-	n139866028390552 -> n139866028390384
-	n139866028390608 [label=1]
-	n139866028390552 -> n139866028390608
-	n139866028390384 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028390384 -> n139866028694720
-	n139866028390440 [label=3]
-	n139866028390384 -> n139866028390440
-	n139866028390440 [label=3]
-	n139866028390608 [label=1]
-	n139866028392120 [label="+"]
-	n139866028391952 [label="*"]
-	n139866028392120 -> n139866028391952
-	n139866028392176 [label=2]
-	n139866028392120 -> n139866028392176
-	n139866028391952 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028391952 -> n139866028694720
-	n139866028392008 [label=3]
-	n139866028391952 -> n139866028392008
-	n139866028392008 [label=3]
-	n139866028392176 [label=2]
-	n139866028216728 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028216728 -> n139866028694720
-	n139866028216784 [label=3]
-	n139866028216728 -> n139866028216784
-	n139866028216784 [label=3]
-	n139866028217512 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028217512 -> n139866028694720
-	n139866028217568 [label=3]
-	n139866028217512 -> n139866028217568
-	n139866028217568 [label=3]
-	n139866028218408 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028218408 -> n139866028694720
-	n139866028218464 [label=3]
-	n139866028218408 -> n139866028218464
-	n139866028218464 [label=3]
-	n139866028218576 [label="+"]
-	n139866028218408 [label="*"]
-	n139866028218576 -> n139866028218408
-	n139866028218632 [label=1]
-	n139866028218576 -> n139866028218632
-	n139866028218632 [label=1]
-	n139866028219192 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028219192 -> n139866028694720
-	n139866028219248 [label=3]
-	n139866028219192 -> n139866028219248
-	n139866028219248 [label=3]
-	n139866028219360 [label="+"]
-	n139866028219192 [label="*"]
-	n139866028219360 -> n139866028219192
-	n139866028219416 [label=1]
-	n139866028219360 -> n139866028219416
-	n139866028219416 [label=1]
-	n139866028220200 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028220200 -> n139866028694720
-	n139866028220256 [label=3]
-	n139866028220200 -> n139866028220256
-	n139866028220256 [label=3]
-	n139866028220368 [label="+"]
-	n139866028220200 [label="*"]
-	n139866028220368 -> n139866028220200
-	n139866028355656 [label=2]
-	n139866028220368 -> n139866028355656
-	n139866028355656 [label=2]
-	n139866028356216 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028356216 -> n139866028694720
-	n139866028356272 [label=3]
-	n139866028356216 -> n139866028356272
-	n139866028356272 [label=3]
-	n139866028356384 [label="+"]
-	n139866028356216 [label="*"]
-	n139866028356384 -> n139866028356216
-	n139866028356440 [label=2]
-	n139866028356384 -> n139866028356440
-	n139866028356440 [label=2]
-	n139866028359408 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028359408 -> n139866028694720
-	n139866028359464 [label=3]
-	n139866028359408 -> n139866028359464
-	n139866028359464 [label=3]
-	n139866028388536 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028388536 -> n139866028694720
-	n139866028388592 [label=3]
-	n139866028388536 -> n139866028388592
-	n139866028388592 [label=3]
-	n139866028389712 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028389712 -> n139866028694720
-	n139866028389768 [label=3]
-	n139866028389712 -> n139866028389768
-	n139866028389768 [label=3]
-	n139866028389880 [label="+"]
-	n139866028389712 [label="*"]
-	n139866028389880 -> n139866028389712
-	n139866028389936 [label=1]
-	n139866028389880 -> n139866028389936
-	n139866028389936 [label=1]
-	n139866028390104 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028390104 -> n139866028694720
-	n139866028390160 [label=3]
-	n139866028390104 -> n139866028390160
-	n139866028390160 [label=3]
-	n139866028390272 [label="+"]
-	n139866028390104 [label="*"]
-	n139866028390272 -> n139866028390104
-	n139866028390328 [label=1]
-	n139866028390272 -> n139866028390328
-	n139866028390328 [label=1]
-	n139866028391280 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028391280 -> n139866028694720
-	n139866028391336 [label=3]
-	n139866028391280 -> n139866028391336
-	n139866028391336 [label=3]
-	n139866028391448 [label="+"]
-	n139866028391280 [label="*"]
-	n139866028391448 -> n139866028391280
-	n139866028391504 [label=2]
-	n139866028391448 -> n139866028391504
-	n139866028391504 [label=2]
-	n139866028391672 [label="*"]
-	n139866028694720 [label="Iter(0)"]
-	n139866028391672 -> n139866028694720
-	n139866028391728 [label=3]
-	n139866028391672 -> n139866028391728
-	n139866028391728 [label=3]
-	n139866028391840 [label="+"]
-	n139866028391672 [label="*"]
-	n139866028391840 -> n139866028391672
-	n139866028391896 [label=2]
-	n139866028391840 -> n139866028391896
-	n139866028391896 [label=2]
-	n139866028695056 [label=For]
-	n139866028695112 [label="Iter(1)"]
-	n139866028695056 -> n139866028695112
-	n139866028695224 [label=Block]
-	n139866028695056 -> n139866028695224
-	n139866028695168 [label=0]
-	n139866028695056 -> n139866028695168
-	n139866028695000 [label=ArrayAccess]
-	n139866028695056 -> n139866028695000
-	n139866028695112 [label="Iter(1)"]
-	n139866028695224 [label=Block]
-	n139866028357336 [label=Filter]
-	n139866028695224 -> n139866028357336
-	n139866028695448 [label="+"]
-	n139866028695336 [label="*"]
-	n139866028695448 -> n139866028695336
-	n139866028695112 [label="Iter(1)"]
-	n139866028695448 -> n139866028695112
-	n139866028216448 [label=PropertyAccess]
-	n139866028639904 [label=position]
-	n139866028216448 -> n139866028639904
-	n139866028695280 [label=ArrayAccess]
-	n139866028216448 -> n139866028695280
-	n139866028389152 [label="*"]
-	n139866028216448 -> n139866028389152
-	n139866028390888 [label="+"]
-	n139866028216448 -> n139866028390888
-	n139866028425288 [label="+"]
-	n139866028216448 -> n139866028425288
-	n139866028695280 [label=ArrayAccess]
-	n139866028691864 [label=neighborlists]
-	n139866028695280 -> n139866028691864
-	n139866028695448 [label="+"]
-	n139866028695280 -> n139866028695448
-	n139866028691864 [label=neighborlists]
-	n139866028389152 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028389152 -> n139866028695280
-	n139866028389208 [label=3]
-	n139866028389152 -> n139866028389208
-	n139866028389208 [label=3]
-	n139866028390888 [label="+"]
-	n139866028390720 [label="*"]
-	n139866028390888 -> n139866028390720
-	n139866028390944 [label=1]
-	n139866028390888 -> n139866028390944
-	n139866028390720 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028390720 -> n139866028695280
-	n139866028390776 [label=3]
-	n139866028390720 -> n139866028390776
-	n139866028390776 [label=3]
-	n139866028390944 [label=1]
-	n139866028425288 [label="+"]
-	n139866028392288 [label="*"]
-	n139866028425288 -> n139866028392288
-	n139866028425344 [label=2]
-	n139866028425288 -> n139866028425344
-	n139866028392288 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028392288 -> n139866028695280
-	n139866028392344 [label=3]
-	n139866028392288 -> n139866028392344
-	n139866028392344 [label=3]
-	n139866028425344 [label=2]
-	n139866028216560 [label="-"]
-	n139866028692480 [label=PropertyAccess]
-	n139866028216560 -> n139866028692480
-	n139866028216448 [label=PropertyAccess]
-	n139866028216560 -> n139866028216448
-	n139866028217064 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028217064 -> n139866028695280
-	n139866028217120 [label=3]
-	n139866028217064 -> n139866028217120
-	n139866028217120 [label=3]
-	n139866028217848 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028217848 -> n139866028695280
-	n139866028217904 [label=3]
-	n139866028217848 -> n139866028217904
-	n139866028217904 [label=3]
-	n139866028218240 [label="*"]
-	n139866028217400 [label=VectorAccess]
-	n139866028218240 -> n139866028217400
-	n139866028218184 [label=VectorAccess]
-	n139866028218240 -> n139866028218184
-	n139866028217400 [label=VectorAccess]
-	n139866028216560 [label="-"]
-	n139866028217400 -> n139866028216560
-	n139866028218184 [label=VectorAccess]
-	n139866028216560 [label="-"]
-	n139866028218184 -> n139866028216560
-	n139866028218744 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028218744 -> n139866028695280
-	n139866028218800 [label=3]
-	n139866028218744 -> n139866028218800
-	n139866028218800 [label=3]
-	n139866028218912 [label="+"]
-	n139866028218744 [label="*"]
-	n139866028218912 -> n139866028218744
-	n139866028218968 [label=1]
-	n139866028218912 -> n139866028218968
-	n139866028218968 [label=1]
-	n139866028219528 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028219528 -> n139866028695280
-	n139866028219584 [label=3]
-	n139866028219528 -> n139866028219584
-	n139866028219584 [label=3]
-	n139866028219696 [label="+"]
-	n139866028219528 [label="*"]
-	n139866028219696 -> n139866028219528
-	n139866028219752 [label=1]
-	n139866028219696 -> n139866028219752
-	n139866028219752 [label=1]
-	n139866028219920 [label="*"]
-	n139866028219080 [label=VectorAccess]
-	n139866028219920 -> n139866028219080
-	n139866028219864 [label=VectorAccess]
-	n139866028219920 -> n139866028219864
-	n139866028219080 [label=VectorAccess]
-	n139866028216560 [label="-"]
-	n139866028219080 -> n139866028216560
-	n139866028219864 [label=VectorAccess]
-	n139866028216560 [label="-"]
-	n139866028219864 -> n139866028216560
-	n139866028220032 [label="+"]
-	n139866028218240 [label="*"]
-	n139866028220032 -> n139866028218240
-	n139866028219920 [label="*"]
-	n139866028220032 -> n139866028219920
-	n139866028355768 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028355768 -> n139866028695280
-	n139866028355824 [label=3]
-	n139866028355768 -> n139866028355824
-	n139866028355824 [label=3]
-	n139866028355936 [label="+"]
-	n139866028355768 [label="*"]
-	n139866028355936 -> n139866028355768
-	n139866028355992 [label=2]
-	n139866028355936 -> n139866028355992
-	n139866028355992 [label=2]
-	n139866028356552 [label="*"]
-	n139866028695280 [label=ArrayAccess]
-	n139866028356552 -> n139866028695280
-	n139866028356608 [label=3]
-	n139866028356552 -> n139866028356608
-	n139866028356608 [label=3]
-	n139866028356720 [label="+"]
-	n139866028356552 [label="*"]
-	n139866028356720 -> n139866028356552
-	n139866028356776 [label=2]
-	n139866028356720 -> n139866028356776
-	n139866028356776 [label=2]
-	n139866028356944 [label="*"]
-	n139866028356104 [label=VectorAccess]
-	n139866028356944 -> n139866028356104
-	n139866028356888 [label=VectorAccess]
-	n139866028356944 -> n139866028356888
-	n139866028356104 [label=VectorAccess]
-	n139866028216560 [label="-"]
-	n139866028356104 -> n139866028216560
-	n139866028356888 [label=VectorAccess]
-	n139866028216560 [label="-"]
-	n139866028356888 -> n139866028216560
-	n139866028357056 [label="+"]
-	n139866028220032 [label="+"]
-	n139866028357056 -> n139866028220032
-	n139866028356944 [label="*"]
-	n139866028357056 -> n139866028356944
-	n139866028357168 [label="<"]
-	n139866028357056 [label="+"]
-	n139866028357168 -> n139866028357056
-	n139866028357224 [label=2.5]
-	n139866028357168 -> n139866028357224
-	n139866028357224 [label=2.5]
-	n139866028357336 [label=Filter]
-	n139866028357168 [label="<"]
-	n139866028357336 -> n139866028357168
-	n139866028357392 [label=Block]
-	n139866028357336 -> n139866028357392
-	n139866028357392 [label=Block]
-	n139866028359296 [label=Assign]
-	n139866028357392 -> n139866028359296
-	n139866028357728 [label="/"]
-	n139866028357784 [label=1.0]
-	n139866028357728 -> n139866028357784
-	n139866028357056 [label="+"]
-	n139866028357728 -> n139866028357056
-	n139866028357784 [label=1.0]
-	n139866028357896 [label="*"]
-	n139866028357728 [label="/"]
-	n139866028357896 -> n139866028357728
-	n139866028357728 [label="/"]
-	n139866028357896 -> n139866028357728
-	n139866028358008 [label="*"]
-	n139866028357896 [label="*"]
-	n139866028358008 -> n139866028357896
-	n139866028357728 [label="/"]
-	n139866028358008 -> n139866028357728
-	n139866028357672 [label=PropertyAccess]
-	n139866028640016 [label=force]
-	n139866028357672 -> n139866028640016
-	n139866028694720 [label="Iter(0)"]
-	n139866028357672 -> n139866028694720
-	n139866028388536 [label="*"]
-	n139866028357672 -> n139866028388536
-	n139866028390272 [label="+"]
-	n139866028357672 -> n139866028390272
-	n139866028391840 [label="+"]
-	n139866028357672 -> n139866028391840
-	n139866028640016 [label=force]
-	n139866028358344 [label="*"]
-	n139866028216560 [label="-"]
-	n139866028358344 -> n139866028216560
-	n139866028358400 [label=48.0]
-	n139866028358344 -> n139866028358400
-	n139866028358400 [label=48.0]
-	n139866028358512 [label="*"]
-	n139866028216560 [label="-"]
-	n139866028358512 -> n139866028216560
-	n139866027164896 [label="*"]
-	n139866028358512 -> n139866027164896
-	n139866027164896 [label="*"]
-	n139866028358400 [label=48.0]
-	n139866027164896 -> n139866028358400
-	n139866028358008 [label="*"]
-	n139866027164896 -> n139866028358008
-	n139866028358624 [label="-"]
-	n139866028358008 [label="*"]
-	n139866028358624 -> n139866028358008
-	n139866028358680 [label=0.5]
-	n139866028358624 -> n139866028358680
-	n139866028358680 [label=0.5]
-	n139866028358792 [label="*"]
-	n139866028216560 [label="-"]
-	n139866028358792 -> n139866028216560
-	n139866027165008 [label="*"]
-	n139866028358792 -> n139866027165008
-	n139866027165008 [label="*"]
-	n139866027164896 [label="*"]
-	n139866027165008 -> n139866027164896
-	n139866028358624 [label="-"]
-	n139866027165008 -> n139866028358624
-	n139866028358904 [label="*"]
-	n139866028216560 [label="-"]
-	n139866028358904 -> n139866028216560
-	n139866027165120 [label="*"]
-	n139866028358904 -> n139866027165120
-	n139866027165120 [label="*"]
-	n139866027165008 [label="*"]
-	n139866027165120 -> n139866027165008
-	n139866028357728 [label="/"]
-	n139866027165120 -> n139866028357728
-	n139866028359016 [label="*"]
-	n139866028216560 [label="-"]
-	n139866028359016 -> n139866028216560
-	n139866027165120 [label="*"]
-	n139866028359016 -> n139866027165120
-	n139866028359184 [label="+"]
-	n139866028357672 [label=PropertyAccess]
-	n139866028359184 -> n139866028357672
-	n139866028359016 [label="*"]
-	n139866028359184 -> n139866028359016
-	n139866028359296 [label=Assign]
-	n139866028389600 [label=VectorAccess]
-	n139866028359296 -> n139866028389600
-	n139866028388480 [label=VectorAccess]
-	n139866028359296 -> n139866028388480
-	n139866028391168 [label=VectorAccess]
-	n139866028359296 -> n139866028391168
-	n139866028390048 [label=VectorAccess]
-	n139866028359296 -> n139866028390048
-	n139866028425568 [label=VectorAccess]
-	n139866028359296 -> n139866028425568
-	n139866028391616 [label=VectorAccess]
-	n139866028359296 -> n139866028391616
-	n139866028389600 [label=VectorAccess]
-	n139866028357672 [label=PropertyAccess]
-	n139866028389600 -> n139866028357672
-	n139866028388480 [label=VectorAccess]
-	n139866028359184 [label="+"]
-	n139866028388480 -> n139866028359184
-	n139866028391168 [label=VectorAccess]
-	n139866028357672 [label=PropertyAccess]
-	n139866028391168 -> n139866028357672
-	n139866028390048 [label=VectorAccess]
-	n139866028359184 [label="+"]
-	n139866028390048 -> n139866028359184
-	n139866028425568 [label=VectorAccess]
-	n139866028357672 [label=PropertyAccess]
-	n139866028425568 -> n139866028357672
-	n139866028391616 [label=VectorAccess]
-	n139866028359184 [label="+"]
-	n139866028391616 -> n139866028359184
-	n139866028695168 [label=0]
-	n139866028695000 [label=ArrayAccess]
-	n139866028691920 [label=numneighs]
-	n139866028695000 -> n139866028691920
-	n139866028694720 [label="Iter(0)"]
-	n139866028695000 -> n139866028694720
-	n139866028691920 [label=numneighs]
-	n139866028694776 [label=0]
-	n139866028694832 [label=0]
-	n139866028694664 [label=ParticleFor]
-	n139866028693656 [label="Iter(2)"]
-	n139866028694664 -> n139866028693656
-	n139866028692592 [label=Block]
-	n139866028694664 -> n139866028692592
-	n139866028693544 [label=0]
-	n139866028694664 -> n139866028693544
-	n139866028693320 [label=0]
-	n139866028694664 -> n139866028693320
-	n139866028693656 [label="Iter(2)"]
-	n139866028692592 [label=Block]
-	n139866028426240 [label=Assign]
-	n139866028692592 -> n139866028426240
-	n139866027930848 [label=Assign]
-	n139866028692592 -> n139866027930848
-	n139866028357560 [label=PropertyAccess]
-	n139866028639960 [label=velocity]
-	n139866028357560 -> n139866028639960
-	n139866028693656 [label="Iter(2)"]
-	n139866028357560 -> n139866028693656
-	n139866028426744 [label="*"]
-	n139866028357560 -> n139866028426744
-	n139866028428480 [label="+"]
-	n139866028357560 -> n139866028428480
-	n139866027930064 [label="+"]
-	n139866028357560 -> n139866027930064
-	n139866028639960 [label=velocity]
-	n139866028426744 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028426744 -> n139866028693656
-	n139866028427136 [label=3]
-	n139866028426744 -> n139866028427136
-	n139866028427136 [label=3]
-	n139866028428480 [label="+"]
-	n139866028427976 [label="*"]
-	n139866028428480 -> n139866028427976
-	n139866028428536 [label=1]
-	n139866028428480 -> n139866028428536
-	n139866028427976 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028427976 -> n139866028693656
-	n139866028428368 [label=3]
-	n139866028427976 -> n139866028428368
-	n139866028428368 [label=3]
-	n139866028428536 [label=1]
-	n139866027930064 [label="+"]
-	n139866028429208 [label="*"]
-	n139866027930064 -> n139866028429208
-	n139866027930120 [label=2]
-	n139866027930064 -> n139866027930120
-	n139866028429208 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028429208 -> n139866028693656
-	n139866027929952 [label=3]
-	n139866028429208 -> n139866027929952
-	n139866027929952 [label=3]
-	n139866027930120 [label=2]
-	n139866028425624 [label=PropertyAccess]
-	n139866028640016 [label=force]
-	n139866028425624 -> n139866028640016
-	n139866028693656 [label="Iter(2)"]
-	n139866028425624 -> n139866028693656
-	n139866028426800 [label="*"]
-	n139866028425624 -> n139866028426800
-	n139866028428200 [label="+"]
-	n139866028425624 -> n139866028428200
-	n139866027929784 [label="+"]
-	n139866028425624 -> n139866027929784
-	n139866028426800 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028426800 -> n139866028693656
-	n139866028426856 [label=3]
-	n139866028426800 -> n139866028426856
-	n139866028426856 [label=3]
-	n139866028428200 [label="+"]
-	n139866028428032 [label="*"]
-	n139866028428200 -> n139866028428032
-	n139866028428256 [label=1]
-	n139866028428200 -> n139866028428256
-	n139866028428032 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028428032 -> n139866028693656
-	n139866028428088 [label=3]
-	n139866028428032 -> n139866028428088
-	n139866028428088 [label=3]
-	n139866028428256 [label=1]
-	n139866027929784 [label="+"]
-	n139866028429264 [label="*"]
-	n139866027929784 -> n139866028429264
-	n139866027929840 [label=2]
-	n139866027929784 -> n139866027929840
-	n139866028429264 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028429264 -> n139866028693656
-	n139866027929672 [label=3]
-	n139866028429264 -> n139866027929672
-	n139866027929672 [label=3]
-	n139866027929840 [label=2]
-	n139866028425736 [label="*"]
-	n139866028425792 [label=0.005]
-	n139866028425736 -> n139866028425792
-	n139866028425624 [label=PropertyAccess]
-	n139866028425736 -> n139866028425624
-	n139866028425792 [label=0.005]
-	n139866028425904 [label=PropertyAccess]
-	n139866028639848 [label=mass]
-	n139866028425904 -> n139866028639848
-	n139866028693656 [label="Iter(2)"]
-	n139866028425904 -> n139866028693656
-	n139866028639848 [label=mass]
-	n139866028426016 [label="/"]
-	n139866028425736 [label="*"]
-	n139866028426016 -> n139866028425736
-	n139866028425904 [label=PropertyAccess]
-	n139866028426016 -> n139866028425904
-	n139866028426128 [label="+"]
-	n139866028357560 [label=PropertyAccess]
-	n139866028426128 -> n139866028357560
-	n139866028426016 [label="/"]
-	n139866028426128 -> n139866028426016
-	n139866028426352 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028426352 -> n139866028693656
-	n139866028426408 [label=3]
-	n139866028426352 -> n139866028426408
-	n139866028426408 [label=3]
-	n139866028427584 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028427584 -> n139866028693656
-	n139866028427640 [label=3]
-	n139866028427584 -> n139866028427640
-	n139866028427640 [label=3]
-	n139866028427752 [label="+"]
-	n139866028427584 [label="*"]
-	n139866028427752 -> n139866028427584
-	n139866028427808 [label=1]
-	n139866028427752 -> n139866028427808
-	n139866028427808 [label=1]
-	n139866028428816 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866028428816 -> n139866028693656
-	n139866028428872 [label=3]
-	n139866028428816 -> n139866028428872
-	n139866028428872 [label=3]
-	n139866028428984 [label="+"]
-	n139866028428816 [label="*"]
-	n139866028428984 -> n139866028428816
-	n139866028429040 [label=2]
-	n139866028428984 -> n139866028429040
-	n139866028429040 [label=2]
-	n139866028426240 [label=Assign]
-	n139866028427472 [label=VectorAccess]
-	n139866028426240 -> n139866028427472
-	n139866028426688 [label=VectorAccess]
-	n139866028426240 -> n139866028426688
-	n139866028428704 [label=VectorAccess]
-	n139866028426240 -> n139866028428704
-	n139866028427920 [label=VectorAccess]
-	n139866028426240 -> n139866028427920
-	n139866027930288 [label=VectorAccess]
-	n139866028426240 -> n139866027930288
-	n139866028429152 [label=VectorAccess]
-	n139866028426240 -> n139866028429152
-	n139866028427472 [label=VectorAccess]
-	n139866028357560 [label=PropertyAccess]
-	n139866028427472 -> n139866028357560
-	n139866028426688 [label=VectorAccess]
-	n139866028426128 [label="+"]
-	n139866028426688 -> n139866028426128
-	n139866028428704 [label=VectorAccess]
-	n139866028357560 [label=PropertyAccess]
-	n139866028428704 -> n139866028357560
-	n139866028427920 [label=VectorAccess]
-	n139866028426128 [label="+"]
-	n139866028427920 -> n139866028426128
-	n139866027930288 [label=VectorAccess]
-	n139866028357560 [label=PropertyAccess]
-	n139866027930288 -> n139866028357560
-	n139866028429152 [label=VectorAccess]
-	n139866028426128 [label="+"]
-	n139866028429152 -> n139866028426128
-	n139866027930344 [label=PropertyAccess]
-	n139866028639904 [label=position]
-	n139866027930344 -> n139866028639904
-	n139866028693656 [label="Iter(2)"]
-	n139866027930344 -> n139866028693656
-	n139866027931688 [label="*"]
-	n139866027930344 -> n139866027931688
-	n139866027933088 [label="+"]
-	n139866027930344 -> n139866027933088
-	n139866027967152 [label="+"]
-	n139866027930344 -> n139866027967152
-	n139866027931688 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027931688 -> n139866028693656
-	n139866027931744 [label=3]
-	n139866027931688 -> n139866027931744
-	n139866027931744 [label=3]
-	n139866027933088 [label="+"]
-	n139866027932920 [label="*"]
-	n139866027933088 -> n139866027932920
-	n139866027933144 [label=1]
-	n139866027933088 -> n139866027933144
-	n139866027932920 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027932920 -> n139866028693656
-	n139866027932976 [label=3]
-	n139866027932920 -> n139866027932976
-	n139866027932976 [label=3]
-	n139866027933144 [label=1]
-	n139866027967152 [label="+"]
-	n139866027966984 [label="*"]
-	n139866027967152 -> n139866027966984
-	n139866027967208 [label=2]
-	n139866027967152 -> n139866027967208
-	n139866027966984 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027966984 -> n139866028693656
-	n139866027967040 [label=3]
-	n139866027966984 -> n139866027967040
-	n139866027967040 [label=3]
-	n139866027967208 [label=2]
-	n139866027930456 [label=PropertyAccess]
-	n139866028639960 [label=velocity]
-	n139866027930456 -> n139866028639960
-	n139866028693656 [label="Iter(2)"]
-	n139866027930456 -> n139866028693656
-	n139866027931352 [label="*"]
-	n139866027930456 -> n139866027931352
-	n139866027932752 [label="+"]
-	n139866027930456 -> n139866027932752
-	n139866027966816 [label="+"]
-	n139866027930456 -> n139866027966816
-	n139866027931352 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027931352 -> n139866028693656
-	n139866027931408 [label=3]
-	n139866027931352 -> n139866027931408
-	n139866027931408 [label=3]
-	n139866027932752 [label="+"]
-	n139866027932584 [label="*"]
-	n139866027932752 -> n139866027932584
-	n139866027932808 [label=1]
-	n139866027932752 -> n139866027932808
-	n139866027932584 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027932584 -> n139866028693656
-	n139866027932640 [label=3]
-	n139866027932584 -> n139866027932640
-	n139866027932640 [label=3]
-	n139866027932808 [label=1]
-	n139866027966816 [label="+"]
-	n139866027966648 [label="*"]
-	n139866027966816 -> n139866027966648
-	n139866027966872 [label=2]
-	n139866027966816 -> n139866027966872
-	n139866027966648 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027966648 -> n139866028693656
-	n139866027966704 [label=3]
-	n139866027966648 -> n139866027966704
-	n139866027966704 [label=3]
-	n139866027966872 [label=2]
-	n139866027930568 [label="*"]
-	n139866027930624 [label=0.005]
-	n139866027930568 -> n139866027930624
-	n139866027930456 [label=PropertyAccess]
-	n139866027930568 -> n139866027930456
-	n139866027930624 [label=0.005]
-	n139866027930736 [label="+"]
-	n139866027930344 [label=PropertyAccess]
-	n139866027930736 -> n139866027930344
-	n139866027930568 [label="*"]
-	n139866027930736 -> n139866027930568
-	n139866027930960 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027930960 -> n139866028693656
-	n139866027931016 [label=3]
-	n139866027930960 -> n139866027931016
-	n139866027931016 [label=3]
-	n139866027932192 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027932192 -> n139866028693656
-	n139866027932248 [label=3]
-	n139866027932192 -> n139866027932248
-	n139866027932248 [label=3]
-	n139866027932360 [label="+"]
-	n139866027932192 [label="*"]
-	n139866027932360 -> n139866027932192
-	n139866027932416 [label=1]
-	n139866027932360 -> n139866027932416
-	n139866027932416 [label=1]
-	n139866027933424 [label="*"]
-	n139866028693656 [label="Iter(2)"]
-	n139866027933424 -> n139866028693656
-	n139866027933480 [label=3]
-	n139866027933424 -> n139866027933480
-	n139866027933480 [label=3]
-	n139866027933592 [label="+"]
-	n139866027933424 [label="*"]
-	n139866027933592 -> n139866027933424
-	n139866027933648 [label=2]
-	n139866027933592 -> n139866027933648
-	n139866027933648 [label=2]
-	n139866027930848 [label=Assign]
-	n139866027932080 [label=VectorAccess]
-	n139866027930848 -> n139866027932080
-	n139866027931296 [label=VectorAccess]
-	n139866027930848 -> n139866027931296
-	n139866027933312 [label=VectorAccess]
-	n139866027930848 -> n139866027933312
-	n139866027932528 [label=VectorAccess]
-	n139866027930848 -> n139866027932528
-	n139866027967376 [label=VectorAccess]
-	n139866027930848 -> n139866027967376
-	n139866027966592 [label=VectorAccess]
-	n139866027930848 -> n139866027966592
-	n139866027932080 [label=VectorAccess]
-	n139866027930344 [label=PropertyAccess]
-	n139866027932080 -> n139866027930344
-	n139866027931296 [label=VectorAccess]
-	n139866027930736 [label="+"]
-	n139866027931296 -> n139866027930736
-	n139866027933312 [label=VectorAccess]
-	n139866027930344 [label=PropertyAccess]
-	n139866027933312 -> n139866027930344
-	n139866027932528 [label=VectorAccess]
-	n139866027930736 [label="+"]
-	n139866027932528 -> n139866027930736
-	n139866027967376 [label=VectorAccess]
-	n139866027930344 [label=PropertyAccess]
-	n139866027967376 -> n139866027930344
-	n139866027966592 [label=VectorAccess]
-	n139866027930736 [label="+"]
-	n139866027966592 -> n139866027930736
-	n139866028693544 [label=0]
-	n139866028693320 [label=0]
+	n140496472691768 [label=Block]
+	n140496472273248 [label=KernelBlock]
+	n140496472691768 -> n140496472273248
+	n140496472402632 [label=KernelBlock]
+	n140496472691768 -> n140496472402632
+	n140496472273248 [label=KernelBlock]
+	n140496472273024 [label=Block]
+	n140496472273248 -> n140496472273024
+	n140496472273024 [label=Block]
+	n140496472694064 [label=ParticleFor]
+	n140496472273024 -> n140496472694064
+	n140496472694064 [label=ParticleFor]
+	n140496472273080 [label="Iter(0)"]
+	n140496472694064 -> n140496472273080
+	n140496472273192 [label=Block]
+	n140496472694064 -> n140496472273192
+	n140496473762056 [label=0]
+	n140496472694064 -> n140496473762056
+	n140496472273136 [label=0]
+	n140496472694064 -> n140496472273136
+	n140496472273080 [label="Iter(0)"]
+	n140496472273192 [label=Block]
+	n140496472273360 [label=For]
+	n140496472273192 -> n140496472273360
+	n140496472273640 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472273640 -> n140496472273080
+	n140496472737104 [label=neighborlist_capacity]
+	n140496472273640 -> n140496472737104
+	n140496472737104 [label=neighborlist_capacity]
+	n140496472273864 [label=PropertyAccess]
+	n140496472693336 [label=position]
+	n140496472273864 -> n140496472693336
+	n140496472273080 [label="Iter(0)"]
+	n140496472273864 -> n140496472273080
+	n140496472434000 [label="*"]
+	n140496472273864 -> n140496472434000
+	n140496472435736 [label="+"]
+	n140496472273864 -> n140496472435736
+	n140496472470136 [label="+"]
+	n140496472273864 -> n140496472470136
+	n140496472693336 [label=position]
+	n140496472434000 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472434000 -> n140496472273080
+	n140496472434056 [label=3]
+	n140496472434000 -> n140496472434056
+	n140496472434056 [label=3]
+	n140496472435736 [label="+"]
+	n140496472435568 [label="*"]
+	n140496472435736 -> n140496472435568
+	n140496472435792 [label=1]
+	n140496472435736 -> n140496472435792
+	n140496472435568 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472435568 -> n140496472273080
+	n140496472435624 [label=3]
+	n140496472435568 -> n140496472435624
+	n140496472435624 [label=3]
+	n140496472435792 [label=1]
+	n140496472470136 [label="+"]
+	n140496472469968 [label="*"]
+	n140496472470136 -> n140496472469968
+	n140496472470192 [label=2]
+	n140496472470136 -> n140496472470192
+	n140496472469968 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472469968 -> n140496472273080
+	n140496472470024 [label=3]
+	n140496472469968 -> n140496472470024
+	n140496472470024 [label=3]
+	n140496472470192 [label=2]
+	n140496472274256 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472274256 -> n140496472273080
+	n140496472274312 [label=3]
+	n140496472274256 -> n140496472274312
+	n140496472274312 [label=3]
+	n140496472274984 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472274984 -> n140496472273080
+	n140496472275040 [label=3]
+	n140496472274984 -> n140496472275040
+	n140496472275040 [label=3]
+	n140496472275880 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472275880 -> n140496472273080
+	n140496472275936 [label=3]
+	n140496472275880 -> n140496472275936
+	n140496472275936 [label=3]
+	n140496472276048 [label="+"]
+	n140496472275880 [label="*"]
+	n140496472276048 -> n140496472275880
+	n140496472276104 [label=1]
+	n140496472276048 -> n140496472276104
+	n140496472276104 [label=1]
+	n140496472276664 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472276664 -> n140496472273080
+	n140496472276720 [label=3]
+	n140496472276664 -> n140496472276720
+	n140496472276720 [label=3]
+	n140496472276832 [label="+"]
+	n140496472276664 [label="*"]
+	n140496472276832 -> n140496472276664
+	n140496472276888 [label=1]
+	n140496472276832 -> n140496472276888
+	n140496472276888 [label=1]
+	n140496472400616 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472400616 -> n140496472273080
+	n140496472400672 [label=3]
+	n140496472400616 -> n140496472400672
+	n140496472400672 [label=3]
+	n140496472400784 [label="+"]
+	n140496472400616 [label="*"]
+	n140496472400784 -> n140496472400616
+	n140496472400840 [label=2]
+	n140496472400784 -> n140496472400840
+	n140496472400840 [label=2]
+	n140496472401400 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472401400 -> n140496472273080
+	n140496472401456 [label=3]
+	n140496472401400 -> n140496472401456
+	n140496472401456 [label=3]
+	n140496472401568 [label="+"]
+	n140496472401400 [label="*"]
+	n140496472401568 -> n140496472401400
+	n140496472401624 [label=2]
+	n140496472401568 -> n140496472401624
+	n140496472401624 [label=2]
+	n140496472433328 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472433328 -> n140496472273080
+	n140496472433384 [label=3]
+	n140496472433328 -> n140496472433384
+	n140496472433384 [label=3]
+	n140496472433720 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472433720 -> n140496472273080
+	n140496472433776 [label=3]
+	n140496472433720 -> n140496472433776
+	n140496472433776 [label=3]
+	n140496472434896 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472434896 -> n140496472273080
+	n140496472434952 [label=3]
+	n140496472434896 -> n140496472434952
+	n140496472434952 [label=3]
+	n140496472435064 [label="+"]
+	n140496472434896 [label="*"]
+	n140496472435064 -> n140496472434896
+	n140496472435120 [label=1]
+	n140496472435064 -> n140496472435120
+	n140496472435120 [label=1]
+	n140496472435288 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472435288 -> n140496472273080
+	n140496472435344 [label=3]
+	n140496472435288 -> n140496472435344
+	n140496472435344 [label=3]
+	n140496472435456 [label="+"]
+	n140496472435288 [label="*"]
+	n140496472435456 -> n140496472435288
+	n140496472435512 [label=1]
+	n140496472435456 -> n140496472435512
+	n140496472435512 [label=1]
+	n140496472436464 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472436464 -> n140496472273080
+	n140496472436520 [label=3]
+	n140496472436464 -> n140496472436520
+	n140496472436520 [label=3]
+	n140496472436632 [label="+"]
+	n140496472436464 [label="*"]
+	n140496472436632 -> n140496472436464
+	n140496472436688 [label=2]
+	n140496472436632 -> n140496472436688
+	n140496472436688 [label=2]
+	n140496472469688 [label="*"]
+	n140496472273080 [label="Iter(0)"]
+	n140496472469688 -> n140496472273080
+	n140496472469744 [label=3]
+	n140496472469688 -> n140496472469744
+	n140496472469744 [label=3]
+	n140496472469856 [label="+"]
+	n140496472469688 [label="*"]
+	n140496472469856 -> n140496472469688
+	n140496472469912 [label=2]
+	n140496472469856 -> n140496472469912
+	n140496472469912 [label=2]
+	n140496472273360 [label=For]
+	n140496472273416 [label="Iter(1)"]
+	n140496472273360 -> n140496472273416
+	n140496472273528 [label=Block]
+	n140496472273360 -> n140496472273528
+	n140496472273472 [label=0]
+	n140496472273360 -> n140496472273472
+	n140496472273304 [label=ArrayAccess]
+	n140496472273360 -> n140496472273304
+	n140496472273416 [label="Iter(1)"]
+	n140496472273528 [label=Block]
+	n140496472402520 [label=Filter]
+	n140496472273528 -> n140496472402520
+	n140496472273752 [label="+"]
+	n140496472273640 [label="*"]
+	n140496472273752 -> n140496472273640
+	n140496472273416 [label="Iter(1)"]
+	n140496472273752 -> n140496472273416
+	n140496472273976 [label=PropertyAccess]
+	n140496472693336 [label=position]
+	n140496472273976 -> n140496472693336
+	n140496472273584 [label=ArrayAccess]
+	n140496472273976 -> n140496472273584
+	n140496472434336 [label="*"]
+	n140496472273976 -> n140496472434336
+	n140496472436072 [label="+"]
+	n140496472273976 -> n140496472436072
+	n140496472470472 [label="+"]
+	n140496472273976 -> n140496472470472
+	n140496472273584 [label=ArrayAccess]
+	n140496472737160 [label=neighborlists]
+	n140496472273584 -> n140496472737160
+	n140496472273752 [label="+"]
+	n140496472273584 -> n140496472273752
+	n140496472737160 [label=neighborlists]
+	n140496472434336 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472434336 -> n140496472273584
+	n140496472434392 [label=3]
+	n140496472434336 -> n140496472434392
+	n140496472434392 [label=3]
+	n140496472436072 [label="+"]
+	n140496472435904 [label="*"]
+	n140496472436072 -> n140496472435904
+	n140496472436128 [label=1]
+	n140496472436072 -> n140496472436128
+	n140496472435904 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472435904 -> n140496472273584
+	n140496472435960 [label=3]
+	n140496472435904 -> n140496472435960
+	n140496472435960 [label=3]
+	n140496472436128 [label=1]
+	n140496472470472 [label="+"]
+	n140496472470304 [label="*"]
+	n140496472470472 -> n140496472470304
+	n140496472470528 [label=2]
+	n140496472470472 -> n140496472470528
+	n140496472470304 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472470304 -> n140496472273584
+	n140496472470360 [label=3]
+	n140496472470304 -> n140496472470360
+	n140496472470360 [label=3]
+	n140496472470528 [label=2]
+	n140496472274088 [label="-"]
+	n140496472273864 [label=PropertyAccess]
+	n140496472274088 -> n140496472273864
+	n140496472273976 [label=PropertyAccess]
+	n140496472274088 -> n140496472273976
+	n140496473762448 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496473762448 -> n140496472273584
+	n140496472274592 [label=3]
+	n140496473762448 -> n140496472274592
+	n140496472274592 [label=3]
+	n140496472275320 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472275320 -> n140496472273584
+	n140496472275376 [label=3]
+	n140496472275320 -> n140496472275376
+	n140496472275376 [label=3]
+	n140496472275712 [label="*"]
+	n140496472274872 [label=VectorAccess]
+	n140496472275712 -> n140496472274872
+	n140496472275656 [label=VectorAccess]
+	n140496472275712 -> n140496472275656
+	n140496472274872 [label=VectorAccess]
+	n140496472274088 [label="-"]
+	n140496472274872 -> n140496472274088
+	n140496472275656 [label=VectorAccess]
+	n140496472274088 [label="-"]
+	n140496472275656 -> n140496472274088
+	n140496472276216 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472276216 -> n140496472273584
+	n140496472276272 [label=3]
+	n140496472276216 -> n140496472276272
+	n140496472276272 [label=3]
+	n140496472276384 [label="+"]
+	n140496472276216 [label="*"]
+	n140496472276384 -> n140496472276216
+	n140496472276440 [label=1]
+	n140496472276384 -> n140496472276440
+	n140496472276440 [label=1]
+	n140496472399944 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472399944 -> n140496472273584
+	n140496472400000 [label=3]
+	n140496472399944 -> n140496472400000
+	n140496472400000 [label=3]
+	n140496472400112 [label="+"]
+	n140496472399944 [label="*"]
+	n140496472400112 -> n140496472399944
+	n140496472400168 [label=1]
+	n140496472400112 -> n140496472400168
+	n140496472400168 [label=1]
+	n140496472400336 [label="*"]
+	n140496472276552 [label=VectorAccess]
+	n140496472400336 -> n140496472276552
+	n140496472400280 [label=VectorAccess]
+	n140496472400336 -> n140496472400280
+	n140496472276552 [label=VectorAccess]
+	n140496472274088 [label="-"]
+	n140496472276552 -> n140496472274088
+	n140496472400280 [label=VectorAccess]
+	n140496472274088 [label="-"]
+	n140496472400280 -> n140496472274088
+	n140496472400448 [label="+"]
+	n140496472275712 [label="*"]
+	n140496472400448 -> n140496472275712
+	n140496472400336 [label="*"]
+	n140496472400448 -> n140496472400336
+	n140496472400952 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472400952 -> n140496472273584
+	n140496472401008 [label=3]
+	n140496472400952 -> n140496472401008
+	n140496472401008 [label=3]
+	n140496472401120 [label="+"]
+	n140496472400952 [label="*"]
+	n140496472401120 -> n140496472400952
+	n140496472401176 [label=2]
+	n140496472401120 -> n140496472401176
+	n140496472401176 [label=2]
+	n140496472401736 [label="*"]
+	n140496472273584 [label=ArrayAccess]
+	n140496472401736 -> n140496472273584
+	n140496472401792 [label=3]
+	n140496472401736 -> n140496472401792
+	n140496472401792 [label=3]
+	n140496472401904 [label="+"]
+	n140496472401736 [label="*"]
+	n140496472401904 -> n140496472401736
+	n140496472401960 [label=2]
+	n140496472401904 -> n140496472401960
+	n140496472401960 [label=2]
+	n140496472402128 [label="*"]
+	n140496472401288 [label=VectorAccess]
+	n140496472402128 -> n140496472401288
+	n140496472402072 [label=VectorAccess]
+	n140496472402128 -> n140496472402072
+	n140496472401288 [label=VectorAccess]
+	n140496472274088 [label="-"]
+	n140496472401288 -> n140496472274088
+	n140496472402072 [label=VectorAccess]
+	n140496472274088 [label="-"]
+	n140496472402072 -> n140496472274088
+	n140496472402240 [label="+"]
+	n140496472400448 [label="+"]
+	n140496472402240 -> n140496472400448
+	n140496472402128 [label="*"]
+	n140496472402240 -> n140496472402128
+	n140496472402352 [label="<"]
+	n140496472402240 [label="+"]
+	n140496472402352 -> n140496472402240
+	n140496472402408 [label=2.5]
+	n140496472402352 -> n140496472402408
+	n140496472402408 [label=2.5]
+	n140496472402520 [label=Filter]
+	n140496472402352 [label="<"]
+	n140496472402520 -> n140496472402352
+	n140496472402576 [label=Block]
+	n140496472402520 -> n140496472402576
+	n140496472402576 [label=Block]
+	n140496472433216 [label=Assign]
+	n140496472402576 -> n140496472433216
+	n140496472402912 [label="/"]
+	n140496472402968 [label=1.0]
+	n140496472402912 -> n140496472402968
+	n140496472402240 [label="+"]
+	n140496472402912 -> n140496472402240
+	n140496472402968 [label=1.0]
+	n140496472403080 [label="*"]
+	n140496472402912 [label="/"]
+	n140496472403080 -> n140496472402912
+	n140496472402912 [label="/"]
+	n140496472403080 -> n140496472402912
+	n140496472403192 [label="*"]
+	n140496472403080 [label="*"]
+	n140496472403192 -> n140496472403080
+	n140496472402912 [label="/"]
+	n140496472403192 -> n140496472402912
+	n140496472402856 [label=PropertyAccess]
+	n140496472693448 [label=force]
+	n140496472402856 -> n140496472693448
+	n140496472273080 [label="Iter(0)"]
+	n140496472402856 -> n140496472273080
+	n140496472433720 [label="*"]
+	n140496472402856 -> n140496472433720
+	n140496472435456 [label="+"]
+	n140496472402856 -> n140496472435456
+	n140496472469856 [label="+"]
+	n140496472402856 -> n140496472469856
+	n140496472693448 [label=force]
+	n140496472403528 [label="*"]
+	n140496472274088 [label="-"]
+	n140496472403528 -> n140496472274088
+	n140496472403584 [label=48.0]
+	n140496472403528 -> n140496472403584
+	n140496472403584 [label=48.0]
+	n140496472403696 [label="*"]
+	n140496472274088 [label="-"]
+	n140496472403696 -> n140496472274088
+	n140496471697896 [label="*"]
+	n140496472403696 -> n140496471697896
+	n140496471697896 [label="*"]
+	n140496472403584 [label=48.0]
+	n140496471697896 -> n140496472403584
+	n140496472403192 [label="*"]
+	n140496471697896 -> n140496472403192
+	n140496472403808 [label="-"]
+	n140496472403192 [label="*"]
+	n140496472403808 -> n140496472403192
+	n140496472403864 [label=0.5]
+	n140496472403808 -> n140496472403864
+	n140496472403864 [label=0.5]
+	n140496472432712 [label="*"]
+	n140496472274088 [label="-"]
+	n140496472432712 -> n140496472274088
+	n140496471698008 [label="*"]
+	n140496472432712 -> n140496471698008
+	n140496471698008 [label="*"]
+	n140496471697896 [label="*"]
+	n140496471698008 -> n140496471697896
+	n140496472403808 [label="-"]
+	n140496471698008 -> n140496472403808
+	n140496472432824 [label="*"]
+	n140496472274088 [label="-"]
+	n140496472432824 -> n140496472274088
+	n140496471698120 [label="*"]
+	n140496472432824 -> n140496471698120
+	n140496471698120 [label="*"]
+	n140496471698008 [label="*"]
+	n140496471698120 -> n140496471698008
+	n140496472402912 [label="/"]
+	n140496471698120 -> n140496472402912
+	n140496472432936 [label="*"]
+	n140496472274088 [label="-"]
+	n140496472432936 -> n140496472274088
+	n140496471698120 [label="*"]
+	n140496472432936 -> n140496471698120
+	n140496472433104 [label="+"]
+	n140496472402856 [label=PropertyAccess]
+	n140496472433104 -> n140496472402856
+	n140496472432936 [label="*"]
+	n140496472433104 -> n140496472432936
+	n140496472433216 [label=Assign]
+	n140496472434784 [label=VectorAccess]
+	n140496472433216 -> n140496472434784
+	n140496472433664 [label=VectorAccess]
+	n140496472433216 -> n140496472433664
+	n140496472436352 [label=VectorAccess]
+	n140496472433216 -> n140496472436352
+	n140496472435232 [label=VectorAccess]
+	n140496472433216 -> n140496472435232
+	n140496472470752 [label=VectorAccess]
+	n140496472433216 -> n140496472470752
+	n140496472469632 [label=VectorAccess]
+	n140496472433216 -> n140496472469632
+	n140496472434784 [label=VectorAccess]
+	n140496472402856 [label=PropertyAccess]
+	n140496472434784 -> n140496472402856
+	n140496472433664 [label=VectorAccess]
+	n140496472433104 [label="+"]
+	n140496472433664 -> n140496472433104
+	n140496472436352 [label=VectorAccess]
+	n140496472402856 [label=PropertyAccess]
+	n140496472436352 -> n140496472402856
+	n140496472435232 [label=VectorAccess]
+	n140496472433104 [label="+"]
+	n140496472435232 -> n140496472433104
+	n140496472470752 [label=VectorAccess]
+	n140496472402856 [label=PropertyAccess]
+	n140496472470752 -> n140496472402856
+	n140496472469632 [label=VectorAccess]
+	n140496472433104 [label="+"]
+	n140496472469632 -> n140496472433104
+	n140496472273472 [label=0]
+	n140496472273304 [label=ArrayAccess]
+	n140496472737216 [label=numneighs]
+	n140496472273304 -> n140496472737216
+	n140496472273080 [label="Iter(0)"]
+	n140496472273304 -> n140496472273080
+	n140496472737216 [label=numneighs]
+	n140496473762056 [label=0]
+	n140496472273136 [label=0]
+	n140496472402632 [label=KernelBlock]
+	n140496472738952 [label=Block]
+	n140496472402632 -> n140496472738952
+	n140496472738952 [label=Block]
+	n140496472739008 [label=ParticleFor]
+	n140496472738952 -> n140496472739008
+	n140496472739008 [label=ParticleFor]
+	n140496472738896 [label="Iter(2)"]
+	n140496472739008 -> n140496472738896
+	n140496472737664 [label=Block]
+	n140496472739008 -> n140496472737664
+	n140496472738616 [label=0]
+	n140496472739008 -> n140496472738616
+	n140496472737888 [label=0]
+	n140496472739008 -> n140496472737888
+	n140496472738896 [label="Iter(2)"]
+	n140496472737664 [label=Block]
+	n140496472471536 [label=Assign]
+	n140496472737664 -> n140496472471536
+	n140496472500432 [label=Assign]
+	n140496472737664 -> n140496472500432
+	n140496472470808 [label=PropertyAccess]
+	n140496472693392 [label=velocity]
+	n140496472470808 -> n140496472693392
+	n140496472738896 [label="Iter(2)"]
+	n140496472470808 -> n140496472738896
+	n140496472472040 [label="*"]
+	n140496472470808 -> n140496472472040
+	n140496472498416 [label="+"]
+	n140496472470808 -> n140496472498416
+	n140496472499648 [label="+"]
+	n140496472470808 -> n140496472499648
+	n140496472693392 [label=velocity]
+	n140496472472040 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472472040 -> n140496472738896
+	n140496472472432 [label=3]
+	n140496472472040 -> n140496472472432
+	n140496472472432 [label=3]
+	n140496472498416 [label="+"]
+	n140496472473272 [label="*"]
+	n140496472498416 -> n140496472473272
+	n140496472498472 [label=1]
+	n140496472498416 -> n140496472498472
+	n140496472473272 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472473272 -> n140496472738896
+	n140496472498304 [label=3]
+	n140496472473272 -> n140496472498304
+	n140496472498304 [label=3]
+	n140496472498472 [label=1]
+	n140496472499648 [label="+"]
+	n140496472499144 [label="*"]
+	n140496472499648 -> n140496472499144
+	n140496472499704 [label=2]
+	n140496472499648 -> n140496472499704
+	n140496472499144 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472499144 -> n140496472738896
+	n140496472499536 [label=3]
+	n140496472499144 -> n140496472499536
+	n140496472499536 [label=3]
+	n140496472499704 [label=2]
+	n140496472470920 [label=PropertyAccess]
+	n140496472693448 [label=force]
+	n140496472470920 -> n140496472693448
+	n140496472738896 [label="Iter(2)"]
+	n140496472470920 -> n140496472738896
+	n140496472472096 [label="*"]
+	n140496472470920 -> n140496472472096
+	n140496472473496 [label="+"]
+	n140496472470920 -> n140496472473496
+	n140496472499368 [label="+"]
+	n140496472470920 -> n140496472499368
+	n140496472472096 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472472096 -> n140496472738896
+	n140496472472152 [label=3]
+	n140496472472096 -> n140496472472152
+	n140496472472152 [label=3]
+	n140496472473496 [label="+"]
+	n140496472473328 [label="*"]
+	n140496472473496 -> n140496472473328
+	n140496472473552 [label=1]
+	n140496472473496 -> n140496472473552
+	n140496472473328 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472473328 -> n140496472738896
+	n140496472473384 [label=3]
+	n140496472473328 -> n140496472473384
+	n140496472473384 [label=3]
+	n140496472473552 [label=1]
+	n140496472499368 [label="+"]
+	n140496472499200 [label="*"]
+	n140496472499368 -> n140496472499200
+	n140496472499424 [label=2]
+	n140496472499368 -> n140496472499424
+	n140496472499200 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472499200 -> n140496472738896
+	n140496472499256 [label=3]
+	n140496472499200 -> n140496472499256
+	n140496472499256 [label=3]
+	n140496472499424 [label=2]
+	n140496472471032 [label="*"]
+	n140496472471088 [label=0.005]
+	n140496472471032 -> n140496472471088
+	n140496472470920 [label=PropertyAccess]
+	n140496472471032 -> n140496472470920
+	n140496472471088 [label=0.005]
+	n140496472471200 [label=PropertyAccess]
+	n140496472693280 [label=mass]
+	n140496472471200 -> n140496472693280
+	n140496472738896 [label="Iter(2)"]
+	n140496472471200 -> n140496472738896
+	n140496472693280 [label=mass]
+	n140496472471312 [label="/"]
+	n140496472471032 [label="*"]
+	n140496472471312 -> n140496472471032
+	n140496472471200 [label=PropertyAccess]
+	n140496472471312 -> n140496472471200
+	n140496472471424 [label="+"]
+	n140496472470808 [label=PropertyAccess]
+	n140496472471424 -> n140496472470808
+	n140496472471312 [label="/"]
+	n140496472471424 -> n140496472471312
+	n140496472471648 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472471648 -> n140496472738896
+	n140496472471704 [label=3]
+	n140496472471648 -> n140496472471704
+	n140496472471704 [label=3]
+	n140496472472880 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472472880 -> n140496472738896
+	n140496472472936 [label=3]
+	n140496472472880 -> n140496472472936
+	n140496472472936 [label=3]
+	n140496472473048 [label="+"]
+	n140496472472880 [label="*"]
+	n140496472473048 -> n140496472472880
+	n140496472473104 [label=1]
+	n140496472473048 -> n140496472473104
+	n140496472473104 [label=1]
+	n140496472498752 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472498752 -> n140496472738896
+	n140496472498808 [label=3]
+	n140496472498752 -> n140496472498808
+	n140496472498808 [label=3]
+	n140496472498920 [label="+"]
+	n140496472498752 [label="*"]
+	n140496472498920 -> n140496472498752
+	n140496472498976 [label=2]
+	n140496472498920 -> n140496472498976
+	n140496472498976 [label=2]
+	n140496472471536 [label=Assign]
+	n140496472472768 [label=VectorAccess]
+	n140496472471536 -> n140496472472768
+	n140496472471984 [label=VectorAccess]
+	n140496472471536 -> n140496472471984
+	n140496472498640 [label=VectorAccess]
+	n140496472471536 -> n140496472498640
+	n140496472473216 [label=VectorAccess]
+	n140496472471536 -> n140496472473216
+	n140496472499872 [label=VectorAccess]
+	n140496472471536 -> n140496472499872
+	n140496472499088 [label=VectorAccess]
+	n140496472471536 -> n140496472499088
+	n140496472472768 [label=VectorAccess]
+	n140496472470808 [label=PropertyAccess]
+	n140496472472768 -> n140496472470808
+	n140496472471984 [label=VectorAccess]
+	n140496472471424 [label="+"]
+	n140496472471984 -> n140496472471424
+	n140496472498640 [label=VectorAccess]
+	n140496472470808 [label=PropertyAccess]
+	n140496472498640 -> n140496472470808
+	n140496472473216 [label=VectorAccess]
+	n140496472471424 [label="+"]
+	n140496472473216 -> n140496472471424
+	n140496472499872 [label=VectorAccess]
+	n140496472470808 [label=PropertyAccess]
+	n140496472499872 -> n140496472470808
+	n140496472499088 [label=VectorAccess]
+	n140496472471424 [label="+"]
+	n140496472499088 -> n140496472471424
+	n140496472499928 [label=PropertyAccess]
+	n140496472693336 [label=position]
+	n140496472499928 -> n140496472693336
+	n140496472738896 [label="Iter(2)"]
+	n140496472499928 -> n140496472738896
+	n140496472501272 [label="*"]
+	n140496472499928 -> n140496472501272
+	n140496472007120 [label="+"]
+	n140496472499928 -> n140496472007120
+	n140496472008352 [label="+"]
+	n140496472499928 -> n140496472008352
+	n140496472501272 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472501272 -> n140496472738896
+	n140496472501328 [label=3]
+	n140496472501272 -> n140496472501328
+	n140496472501328 [label=3]
+	n140496472007120 [label="+"]
+	n140496472006952 [label="*"]
+	n140496472007120 -> n140496472006952
+	n140496472007176 [label=1]
+	n140496472007120 -> n140496472007176
+	n140496472006952 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472006952 -> n140496472738896
+	n140496472007008 [label=3]
+	n140496472006952 -> n140496472007008
+	n140496472007008 [label=3]
+	n140496472007176 [label=1]
+	n140496472008352 [label="+"]
+	n140496472008184 [label="*"]
+	n140496472008352 -> n140496472008184
+	n140496472008408 [label=2]
+	n140496472008352 -> n140496472008408
+	n140496472008184 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472008184 -> n140496472738896
+	n140496472008240 [label=3]
+	n140496472008184 -> n140496472008240
+	n140496472008240 [label=3]
+	n140496472008408 [label=2]
+	n140496472500040 [label=PropertyAccess]
+	n140496472693392 [label=velocity]
+	n140496472500040 -> n140496472693392
+	n140496472738896 [label="Iter(2)"]
+	n140496472500040 -> n140496472738896
+	n140496472500936 [label="*"]
+	n140496472500040 -> n140496472500936
+	n140496472006784 [label="+"]
+	n140496472500040 -> n140496472006784
+	n140496472008016 [label="+"]
+	n140496472500040 -> n140496472008016
+	n140496472500936 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472500936 -> n140496472738896
+	n140496472500992 [label=3]
+	n140496472500936 -> n140496472500992
+	n140496472500992 [label=3]
+	n140496472006784 [label="+"]
+	n140496472502168 [label="*"]
+	n140496472006784 -> n140496472502168
+	n140496472006840 [label=1]
+	n140496472006784 -> n140496472006840
+	n140496472502168 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472502168 -> n140496472738896
+	n140496472502224 [label=3]
+	n140496472502168 -> n140496472502224
+	n140496472502224 [label=3]
+	n140496472006840 [label=1]
+	n140496472008016 [label="+"]
+	n140496472007848 [label="*"]
+	n140496472008016 -> n140496472007848
+	n140496472008072 [label=2]
+	n140496472008016 -> n140496472008072
+	n140496472007848 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472007848 -> n140496472738896
+	n140496472007904 [label=3]
+	n140496472007848 -> n140496472007904
+	n140496472007904 [label=3]
+	n140496472008072 [label=2]
+	n140496472500152 [label="*"]
+	n140496472500208 [label=0.005]
+	n140496472500152 -> n140496472500208
+	n140496472500040 [label=PropertyAccess]
+	n140496472500152 -> n140496472500040
+	n140496472500208 [label=0.005]
+	n140496472500320 [label="+"]
+	n140496472499928 [label=PropertyAccess]
+	n140496472500320 -> n140496472499928
+	n140496472500152 [label="*"]
+	n140496472500320 -> n140496472500152
+	n140496472500544 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472500544 -> n140496472738896
+	n140496472500600 [label=3]
+	n140496472500544 -> n140496472500600
+	n140496472500600 [label=3]
+	n140496472501776 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472501776 -> n140496472738896
+	n140496472501832 [label=3]
+	n140496472501776 -> n140496472501832
+	n140496472501832 [label=3]
+	n140496472501944 [label="+"]
+	n140496472501776 [label="*"]
+	n140496472501944 -> n140496472501776
+	n140496472502000 [label=1]
+	n140496472501944 -> n140496472502000
+	n140496472502000 [label=1]
+	n140496472007456 [label="*"]
+	n140496472738896 [label="Iter(2)"]
+	n140496472007456 -> n140496472738896
+	n140496472007512 [label=3]
+	n140496472007456 -> n140496472007512
+	n140496472007512 [label=3]
+	n140496472007624 [label="+"]
+	n140496472007456 [label="*"]
+	n140496472007624 -> n140496472007456
+	n140496472007680 [label=2]
+	n140496472007624 -> n140496472007680
+	n140496472007680 [label=2]
+	n140496472500432 [label=Assign]
+	n140496472501664 [label=VectorAccess]
+	n140496472500432 -> n140496472501664
+	n140496472500880 [label=VectorAccess]
+	n140496472500432 -> n140496472500880
+	n140496472007344 [label=VectorAccess]
+	n140496472500432 -> n140496472007344
+	n140496472502112 [label=VectorAccess]
+	n140496472500432 -> n140496472502112
+	n140496472008576 [label=VectorAccess]
+	n140496472500432 -> n140496472008576
+	n140496472007792 [label=VectorAccess]
+	n140496472500432 -> n140496472007792
+	n140496472501664 [label=VectorAccess]
+	n140496472499928 [label=PropertyAccess]
+	n140496472501664 -> n140496472499928
+	n140496472500880 [label=VectorAccess]
+	n140496472500320 [label="+"]
+	n140496472500880 -> n140496472500320
+	n140496472007344 [label=VectorAccess]
+	n140496472499928 [label=PropertyAccess]
+	n140496472007344 -> n140496472499928
+	n140496472502112 [label=VectorAccess]
+	n140496472500320 [label="+"]
+	n140496472502112 -> n140496472500320
+	n140496472008576 [label=VectorAccess]
+	n140496472499928 [label=PropertyAccess]
+	n140496472008576 -> n140496472499928
+	n140496472007792 [label=VectorAccess]
+	n140496472500320 [label="+"]
+	n140496472007792 -> n140496472500320
+	n140496472738616 [label=0]
+	n140496472737888 [label=0]
 }
diff --git a/examples/kernels.pdf b/examples/kernels.pdf
index 54c0d45a7732838899d0d081e18c622211358f87..fcb7d7a2bb06df091f90c8279144a3f666c933d1 100644
Binary files a/examples/kernels.pdf and b/examples/kernels.pdf differ
diff --git a/examples/lj_func.py b/examples/lj_func.py
index 5b2a7d4862ed49bd27b182f8192d718e6c35f9d6..baba7a9bbfc8e155e458fbe2649d998e4cdd34cb 100644
--- a/examples/lj_func.py
+++ b/examples/lj_func.py
@@ -1,15 +1,6 @@
 import pairs
 
 
-def delta(i, j):
-    return position[i] - position[j]
-
-
-def rsq(i, j):
-    dp = delta(i, j)
-    return dp.x() * dp.x() + dp.y() * dp.y() + dp.z() * dp.z()
-
-
 def lj(i, j):
     sr2 = 1.0 / rsq
     sr6 = sr2 * sr2 * sr2 * sigma6
diff --git a/examples/lj_ns.cpp b/examples/lj_ns.cpp
index bc536ce388b0def6feb02d9711eff97ae4137561..c3a1cb4050284a43efb3264a757ed7591288ce43 100644
--- a/examples/lj_ns.cpp
+++ b/examples/lj_ns.cpp
@@ -702,6 +702,8 @@ int main() {
             force[e449] = 0.0;
             force[e451] = 0.0;
         }
+        pairs::copy_to_device(position)
+        pairs::copy_to_device(force)
         for(int i0 = 0; i0 < nlocal; i0++) {
             const int e1 = i0 * neighborlist_capacity;
             const int e47 = i0 * 3;
@@ -761,6 +763,8 @@ int main() {
                 }
             }
         }
+        pairs::copy_to_device(velocity)
+        pairs::copy_to_device(mass)
         for(int i2 = 0; i2 < nlocal; i2++) {
             const int e76 = i2 * 3;
             const double p3_0 = velocity[e76];
diff --git a/src/pairs/__init__.py b/src/pairs/__init__.py
index 5a71e5818a272123daa5491b5a079eaf127dfef5..5bb8d848387e2e1a9c9716b840078f5be74cd238 100644
--- a/src/pairs/__init__.py
+++ b/src/pairs/__init__.py
@@ -1,6 +1,6 @@
 from pairs.code_gen.cgen import CGen
-from pairs.sim.particle_simulation import ParticleSimulation
+from pairs.sim.simulation import Simulation
 
 
 def simulation(ref, dims=3, timesteps=100):
-    return ParticleSimulation(CGen(f"{ref}.cpp"), dims, timesteps)
+    return Simulation(CGen(f"{ref}.cpp"), dims, timesteps)
diff --git a/src/pairs/ir/block.py b/src/pairs/ir/block.py
index d46aa91b3f4539e97300de84a497375d796a36f8..ad8309a78179bf8f43b17791345df7c3ba18f542 100644
--- a/src/pairs/ir/block.py
+++ b/src/pairs/ir/block.py
@@ -14,6 +14,8 @@ class Block(ASTNode):
     def add_statement(self, stmt):
         if isinstance(stmt, list):
             self.stmts = self.stmts + stmt
+        elif isinstance(stmt, Block):
+            self.stmts = self.stmts + stmt.statements()
         else:
             self.stmts.append(stmt)
 
diff --git a/src/pairs/sim/kernel_wrapper.py b/src/pairs/sim/kernel_wrapper.py
deleted file mode 100644
index 2e66b55531117bd7e0a7ce9cea2ad2c17da4ee95..0000000000000000000000000000000000000000
--- a/src/pairs/sim/kernel_wrapper.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from pairs.ir.block import Block, KernelBlock
-
-
-class KernelWrapper():
-    def __init__(self, sim):
-        self.sim = sim
-        self.kernels = []
-
-    def add_kernel_block(self, block):
-        self.kernels.append(KernelBlock(self.sim, block))
-
-    def lower(self):
-        return self.kernels
diff --git a/src/pairs/sim/setup_wrapper.py b/src/pairs/sim/setup_wrapper.py
deleted file mode 100644
index 70b7d746b573d637d7cd63fdf242d055fab4db22..0000000000000000000000000000000000000000
--- a/src/pairs/sim/setup_wrapper.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from pairs.ir.block import Block
-
-
-class SetupWrapper():
-    def __init__(self, sim):
-        self.setups = Block(sim, [])
-
-    def add_setup_block(self, block):
-        self.setups = Block.merge_blocks(self.setups, block)
-
-    def lower(self):
-        return self.setups
diff --git a/src/pairs/sim/particle_simulation.py b/src/pairs/sim/simulation.py
similarity index 97%
rename from src/pairs/sim/particle_simulation.py
rename to src/pairs/sim/simulation.py
index cfcc3a17d7d6b84db57c909d26a6cb8427b14b52..6ed9f8a36fb1cb74a3756e7dbe3ef1d6ba22807f 100644
--- a/src/pairs/sim/particle_simulation.py
+++ b/src/pairs/sim/simulation.py
@@ -16,7 +16,6 @@ from pairs.sim.neighbor_lists import NeighborLists, NeighborListsBuild
 from pairs.sim.pbc import PBC, UpdatePBC, EnforcePBC, SetupPBC
 from pairs.sim.properties import PropertiesAlloc, PropertiesResetVolatile
 from pairs.sim.read_from_file import ReadFromFile
-from pairs.sim.setup_wrapper import SetupWrapper
 from pairs.sim.timestep import Timestep
 from pairs.sim.variables import VariablesDecl
 from pairs.sim.vtk import VTKWrite
@@ -27,7 +26,7 @@ from pairs.transformations.simplify import simplify_expressions
 from pairs.transformations.LICM import move_loop_invariant_code
 
 
-class ParticleSimulation:
+class Simulation:
     def __init__(self, code_gen, dims=3, timesteps=100):
         self.code_gen = code_gen
         self.code_gen.assign_simulation(self)
@@ -47,7 +46,7 @@ class ParticleSimulation:
         self.nest = False
         self.check_decl_usage = True
         self.block = Block(self, [])
-        self.setups = SetupWrapper(self)
+        self.setups = Block(self, [])
         self.kernels = Block(self, [])
         self.dims = dims
         self.ntimesteps = timesteps
@@ -108,12 +107,12 @@ class ParticleSimulation:
     def create_particle_lattice(self, grid, spacing, props={}):
         positions = self.property('position')
         lattice = ParticleLattice(self, grid, spacing, props, positions)
-        self.setups.add_setup_block(lattice.lower())
+        self.setups.add_statement(lattice.lower())
 
     def from_file(self, filename, prop_names):
         props = [self.property(prop_name) for prop_name in prop_names]
         read_object = ReadFromFile(self, filename, props)
-        self.setups.add_setup_block(read_object.lower())
+        self.setups.add_statement(read_object.lower())
         self.grid = read_object.grid
 
     def create_cell_lists(self, spacing, cutoff_radius):
@@ -198,7 +197,7 @@ class ParticleSimulation:
         timestep.add(VTKWrite(self, self.vtk_file, timestep.timestep() + 1).lower())
 
         body = Block.from_list(self, [
-            self.setups.lower(),
+            self.setups,
             CellListsStencilBuild(self.cell_lists).lower(),
             VTKWrite(self, self.vtk_file, 0).lower(),
             timestep.as_block()