diff --git a/examples/kernels b/examples/kernels
index e72996fd08a40e994249df2a2595b170cb44bfe3..1f341d04899cd66f60e1f147a1d07f710d355644 100644
--- a/examples/kernels
+++ b/examples/kernels
@@ -1,846 +1,846 @@
 digraph AST {
 	node [color=lightblue2 style=filled]
 	size="6,6"
-	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]
+	n140112198557368 [label=Block]
+	n140112198162136 [label=KernelBlock]
+	n140112198557368 -> n140112198162136
+	n140112198279352 [label=KernelBlock]
+	n140112198557368 -> n140112198279352
+	n140112198162136 [label=KernelBlock]
+	n140112198161856 [label=Block]
+	n140112198162136 -> n140112198161856
+	n140112198161856 [label=Block]
+	n140112198587056 [label=ParticleFor]
+	n140112198161856 -> n140112198587056
+	n140112198587056 [label=ParticleFor]
+	n140112198161912 [label="Iter(0)"]
+	n140112198587056 -> n140112198161912
+	n140112198162080 [label=Block]
+	n140112198587056 -> n140112198162080
+	n140112198161968 [label=0]
+	n140112198587056 -> n140112198161968
+	n140112198162024 [label=0]
+	n140112198587056 -> n140112198162024
+	n140112198161912 [label="Iter(0)"]
+	n140112198162080 [label=Block]
+	n140112198162248 [label=For]
+	n140112198162080 -> n140112198162248
+	n140112198162528 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198162528 -> n140112198161912
+	n140112198589072 [label=neighborlist_capacity]
+	n140112198162528 -> n140112198589072
+	n140112198589072 [label=neighborlist_capacity]
+	n140112198162752 [label=PropertyAccess]
+	n140112198557592 [label=position]
+	n140112198162752 -> n140112198557592
+	n140112198161912 [label="Iter(0)"]
+	n140112198162752 -> n140112198161912
+	n140112198281984 [label="*"]
+	n140112198162752 -> n140112198281984
+	n140112198316552 [label="+"]
+	n140112198162752 -> n140112198316552
+	n140112198318120 [label="+"]
+	n140112198162752 -> n140112198318120
+	n140112198557592 [label=position]
+	n140112198281984 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198281984 -> n140112198161912
+	n140112198282040 [label=3]
+	n140112198281984 -> n140112198282040
+	n140112198282040 [label=3]
+	n140112198316552 [label="+"]
+	n140112198316384 [label="*"]
+	n140112198316552 -> n140112198316384
+	n140112198316608 [label=1]
+	n140112198316552 -> n140112198316608
+	n140112198316384 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198316384 -> n140112198161912
+	n140112198316440 [label=3]
+	n140112198316384 -> n140112198316440
+	n140112198316440 [label=3]
+	n140112198316608 [label=1]
+	n140112198318120 [label="+"]
+	n140112198317952 [label="*"]
+	n140112198318120 -> n140112198317952
+	n140112198318176 [label=2]
+	n140112198318120 -> n140112198318176
+	n140112198317952 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198317952 -> n140112198161912
+	n140112198318008 [label=3]
+	n140112198317952 -> n140112198318008
+	n140112198318008 [label=3]
+	n140112198318176 [label=2]
+	n140112198163144 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198163144 -> n140112198161912
+	n140112198163200 [label=3]
+	n140112198163144 -> n140112198163200
+	n140112198163200 [label=3]
+	n140112198163928 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198163928 -> n140112198161912
+	n140112198163984 [label=3]
+	n140112198163928 -> n140112198163984
+	n140112198163984 [label=3]
+	n140112198209888 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198209888 -> n140112198161912
+	n140112198209720 [label=3]
+	n140112198209888 -> n140112198209720
+	n140112198209720 [label=3]
+	n140112198210112 [label="+"]
+	n140112198209888 [label="*"]
+	n140112198210112 -> n140112198209888
+	n140112198211568 [label=1]
+	n140112198210112 -> n140112198211568
+	n140112198211568 [label=1]
+	n140112198210672 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198210672 -> n140112198161912
+	n140112198210728 [label=3]
+	n140112198210672 -> n140112198210728
+	n140112198210728 [label=3]
+	n140112198210840 [label="+"]
+	n140112198210672 [label="*"]
+	n140112198210840 -> n140112198210672
+	n140112198210896 [label=1]
+	n140112198210840 -> n140112198210896
+	n140112198210896 [label=1]
+	n140112198211792 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198211792 -> n140112198161912
+	n140112198211960 [label=3]
+	n140112198211792 -> n140112198211960
+	n140112198211960 [label=3]
+	n140112198211904 [label="+"]
+	n140112198211792 [label="*"]
+	n140112198211904 -> n140112198211792
+	n140112198211848 [label=2]
+	n140112198211904 -> n140112198211848
+	n140112198211848 [label=2]
+	n140112198212464 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198212464 -> n140112198161912
+	n140112198212520 [label=3]
+	n140112198212464 -> n140112198212520
+	n140112198212520 [label=3]
+	n140112198212632 [label="+"]
+	n140112198212464 [label="*"]
+	n140112198212632 -> n140112198212464
+	n140112198212688 [label=2]
+	n140112198212632 -> n140112198212688
+	n140112198212688 [label=2]
+	n140112198281312 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198281312 -> n140112198161912
+	n140112198281368 [label=3]
+	n140112198281312 -> n140112198281368
+	n140112198281368 [label=3]
+	n140112198281704 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198281704 -> n140112198161912
+	n140112198281760 [label=3]
+	n140112198281704 -> n140112198281760
+	n140112198281760 [label=3]
+	n140112198282880 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198282880 -> n140112198161912
+	n140112198282936 [label=3]
+	n140112198282880 -> n140112198282936
+	n140112198282936 [label=3]
+	n140112198283048 [label="+"]
+	n140112198282880 [label="*"]
+	n140112198283048 -> n140112198282880
+	n140112198283104 [label=1]
+	n140112198283048 -> n140112198283104
+	n140112198283104 [label=1]
+	n140112198316104 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198316104 -> n140112198161912
+	n140112198316160 [label=3]
+	n140112198316104 -> n140112198316160
+	n140112198316160 [label=3]
+	n140112198316272 [label="+"]
+	n140112198316104 [label="*"]
+	n140112198316272 -> n140112198316104
+	n140112198316328 [label=1]
+	n140112198316272 -> n140112198316328
+	n140112198316328 [label=1]
+	n140112198317280 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198317280 -> n140112198161912
+	n140112198317336 [label=3]
+	n140112198317280 -> n140112198317336
+	n140112198317336 [label=3]
+	n140112198317448 [label="+"]
+	n140112198317280 [label="*"]
+	n140112198317448 -> n140112198317280
+	n140112198317504 [label=2]
+	n140112198317448 -> n140112198317504
+	n140112198317504 [label=2]
+	n140112198317672 [label="*"]
+	n140112198161912 [label="Iter(0)"]
+	n140112198317672 -> n140112198161912
+	n140112198317728 [label=3]
+	n140112198317672 -> n140112198317728
+	n140112198317728 [label=3]
+	n140112198317840 [label="+"]
+	n140112198317672 [label="*"]
+	n140112198317840 -> n140112198317672
+	n140112198317896 [label=2]
+	n140112198317840 -> n140112198317896
+	n140112198317896 [label=2]
+	n140112198162248 [label=For]
+	n140112198162304 [label="Iter(1)"]
+	n140112198162248 -> n140112198162304
+	n140112198162416 [label=Block]
+	n140112198162248 -> n140112198162416
+	n140112198162360 [label=0]
+	n140112198162248 -> n140112198162360
+	n140112198162192 [label=ArrayAccess]
+	n140112198162248 -> n140112198162192
+	n140112198162304 [label="Iter(1)"]
+	n140112198162416 [label=Block]
+	n140112198279240 [label=Filter]
+	n140112198162416 -> n140112198279240
+	n140112198162640 [label="+"]
+	n140112198162528 [label="*"]
+	n140112198162640 -> n140112198162528
+	n140112198162304 [label="Iter(1)"]
+	n140112198162640 -> n140112198162304
+	n140112198162864 [label=PropertyAccess]
+	n140112198557592 [label=position]
+	n140112198162864 -> n140112198557592
+	n140112198162472 [label=ArrayAccess]
+	n140112198162864 -> n140112198162472
+	n140112198282320 [label="*"]
+	n140112198162864 -> n140112198282320
+	n140112198316888 [label="+"]
+	n140112198162864 -> n140112198316888
+	n140112198318456 [label="+"]
+	n140112198162864 -> n140112198318456
+	n140112198162472 [label=ArrayAccess]
+	n140112198589128 [label=neighborlists]
+	n140112198162472 -> n140112198589128
+	n140112198162640 [label="+"]
+	n140112198162472 -> n140112198162640
+	n140112198589128 [label=neighborlists]
+	n140112198282320 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198282320 -> n140112198162472
+	n140112198282376 [label=3]
+	n140112198282320 -> n140112198282376
+	n140112198282376 [label=3]
+	n140112198316888 [label="+"]
+	n140112198316720 [label="*"]
+	n140112198316888 -> n140112198316720
+	n140112198316944 [label=1]
+	n140112198316888 -> n140112198316944
+	n140112198316720 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198316720 -> n140112198162472
+	n140112198316776 [label=3]
+	n140112198316720 -> n140112198316776
+	n140112198316776 [label=3]
+	n140112198316944 [label=1]
+	n140112198318456 [label="+"]
+	n140112198318288 [label="*"]
+	n140112198318456 -> n140112198318288
+	n140112198318512 [label=2]
+	n140112198318456 -> n140112198318512
+	n140112198318288 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198318288 -> n140112198162472
+	n140112198318344 [label=3]
+	n140112198318288 -> n140112198318344
+	n140112198318344 [label=3]
+	n140112198318512 [label=2]
+	n140112198162976 [label="-"]
+	n140112198162752 [label=PropertyAccess]
+	n140112198162976 -> n140112198162752
+	n140112198162864 [label=PropertyAccess]
+	n140112198162976 -> n140112198162864
+	n140112198163480 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198163480 -> n140112198162472
+	n140112198163536 [label=3]
+	n140112198163480 -> n140112198163536
+	n140112198163536 [label=3]
+	n140112198164264 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198164264 -> n140112198162472
+	n140112198164320 [label=3]
+	n140112198164264 -> n140112198164320
+	n140112198164320 [label=3]
+	n140112198209944 [label="*"]
+	n140112198163816 [label=VectorAccess]
+	n140112198209944 -> n140112198163816
+	n140112198209664 [label=VectorAccess]
+	n140112198209944 -> n140112198209664
+	n140112198163816 [label=VectorAccess]
+	n140112198162976 [label="-"]
+	n140112198163816 -> n140112198162976
+	n140112198209664 [label=VectorAccess]
+	n140112198162976 [label="-"]
+	n140112198209664 -> n140112198162976
+	n140112198210224 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198210224 -> n140112198162472
+	n140112198210280 [label=3]
+	n140112198210224 -> n140112198210280
+	n140112198210280 [label=3]
+	n140112198210392 [label="+"]
+	n140112198210224 [label="*"]
+	n140112198210392 -> n140112198210224
+	n140112198210448 [label=1]
+	n140112198210392 -> n140112198210448
+	n140112198210448 [label=1]
+	n140112198211008 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198211008 -> n140112198162472
+	n140112198211064 [label=3]
+	n140112198211008 -> n140112198211064
+	n140112198211064 [label=3]
+	n140112198211176 [label="+"]
+	n140112198211008 [label="*"]
+	n140112198211176 -> n140112198211008
+	n140112198211232 [label=1]
+	n140112198211176 -> n140112198211232
+	n140112198211232 [label=1]
+	n140112198211400 [label="*"]
+	n140112198210560 [label=VectorAccess]
+	n140112198211400 -> n140112198210560
+	n140112198211344 [label=VectorAccess]
+	n140112198211400 -> n140112198211344
+	n140112198210560 [label=VectorAccess]
+	n140112198162976 [label="-"]
+	n140112198210560 -> n140112198162976
+	n140112198211344 [label=VectorAccess]
+	n140112198162976 [label="-"]
+	n140112198211344 -> n140112198162976
+	n140112198211512 [label="+"]
+	n140112198209944 [label="*"]
+	n140112198211512 -> n140112198209944
+	n140112198211400 [label="*"]
+	n140112198211512 -> n140112198211400
+	n140112198213472 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198213472 -> n140112198162472
+	n140112198212072 [label=3]
+	n140112198213472 -> n140112198212072
+	n140112198212072 [label=3]
+	n140112198212184 [label="+"]
+	n140112198213472 [label="*"]
+	n140112198212184 -> n140112198213472
+	n140112198212240 [label=2]
+	n140112198212184 -> n140112198212240
+	n140112198212240 [label=2]
+	n140112198212800 [label="*"]
+	n140112198162472 [label=ArrayAccess]
+	n140112198212800 -> n140112198162472
+	n140112198212856 [label=3]
+	n140112198212800 -> n140112198212856
+	n140112198212856 [label=3]
+	n140112198212968 [label="+"]
+	n140112198212800 [label="*"]
+	n140112198212968 -> n140112198212800
+	n140112198213024 [label=2]
+	n140112198212968 -> n140112198213024
+	n140112198213024 [label=2]
+	n140112198213192 [label="*"]
+	n140112198212352 [label=VectorAccess]
+	n140112198213192 -> n140112198212352
+	n140112198213136 [label=VectorAccess]
+	n140112198213192 -> n140112198213136
+	n140112198212352 [label=VectorAccess]
+	n140112198162976 [label="-"]
+	n140112198212352 -> n140112198162976
+	n140112198213136 [label=VectorAccess]
+	n140112198162976 [label="-"]
+	n140112198213136 -> n140112198162976
+	n140112198213304 [label="+"]
+	n140112198211512 [label="+"]
+	n140112198213304 -> n140112198211512
+	n140112198213192 [label="*"]
+	n140112198213304 -> n140112198213192
+	n140112198213416 [label="<"]
+	n140112198213304 [label="+"]
+	n140112198213416 -> n140112198213304
+	n140112198213584 [label=2.5]
+	n140112198213416 -> n140112198213584
+	n140112198213584 [label=2.5]
+	n140112198279240 [label=Filter]
+	n140112198213416 [label="<"]
+	n140112198279240 -> n140112198213416
+	n140112198279296 [label=Block]
+	n140112198279240 -> n140112198279296
+	n140112198279296 [label=Block]
+	n140112198281200 [label=Assign]
+	n140112198279296 -> n140112198281200
+	n140112198279632 [label="/"]
+	n140112198279688 [label=1.0]
+	n140112198279632 -> n140112198279688
+	n140112198213304 [label="+"]
+	n140112198279632 -> n140112198213304
+	n140112198279688 [label=1.0]
+	n140112198279800 [label="*"]
+	n140112198279632 [label="/"]
+	n140112198279800 -> n140112198279632
+	n140112198279632 [label="/"]
+	n140112198279800 -> n140112198279632
+	n140112198279912 [label="*"]
+	n140112198279800 [label="*"]
+	n140112198279912 -> n140112198279800
+	n140112198279632 [label="/"]
+	n140112198279912 -> n140112198279632
+	n140112198279576 [label=PropertyAccess]
+	n140112198586440 [label=force]
+	n140112198279576 -> n140112198586440
+	n140112198161912 [label="Iter(0)"]
+	n140112198279576 -> n140112198161912
+	n140112198281704 [label="*"]
+	n140112198279576 -> n140112198281704
+	n140112198316272 [label="+"]
+	n140112198279576 -> n140112198316272
+	n140112198317840 [label="+"]
+	n140112198279576 -> n140112198317840
+	n140112198586440 [label=force]
+	n140112198280248 [label="*"]
+	n140112198162976 [label="-"]
+	n140112198280248 -> n140112198162976
+	n140112198280304 [label=48.0]
+	n140112198280248 -> n140112198280304
+	n140112198280304 [label=48.0]
+	n140112198280416 [label="*"]
+	n140112198162976 [label="-"]
+	n140112198280416 -> n140112198162976
+	n140112197071032 [label="*"]
+	n140112198280416 -> n140112197071032
+	n140112197071032 [label="*"]
+	n140112198280304 [label=48.0]
+	n140112197071032 -> n140112198280304
+	n140112198279912 [label="*"]
+	n140112197071032 -> n140112198279912
+	n140112198280528 [label="-"]
+	n140112198279912 [label="*"]
+	n140112198280528 -> n140112198279912
+	n140112198280584 [label=0.5]
+	n140112198280528 -> n140112198280584
+	n140112198280584 [label=0.5]
+	n140112198280696 [label="*"]
+	n140112198162976 [label="-"]
+	n140112198280696 -> n140112198162976
+	n140112197071144 [label="*"]
+	n140112198280696 -> n140112197071144
+	n140112197071144 [label="*"]
+	n140112197071032 [label="*"]
+	n140112197071144 -> n140112197071032
+	n140112198280528 [label="-"]
+	n140112197071144 -> n140112198280528
+	n140112198280808 [label="*"]
+	n140112198162976 [label="-"]
+	n140112198280808 -> n140112198162976
+	n140112197071256 [label="*"]
+	n140112198280808 -> n140112197071256
+	n140112197071256 [label="*"]
+	n140112197071144 [label="*"]
+	n140112197071256 -> n140112197071144
+	n140112198279632 [label="/"]
+	n140112197071256 -> n140112198279632
+	n140112198280920 [label="*"]
+	n140112198162976 [label="-"]
+	n140112198280920 -> n140112198162976
+	n140112197071256 [label="*"]
+	n140112198280920 -> n140112197071256
+	n140112198281088 [label="+"]
+	n140112198279576 [label=PropertyAccess]
+	n140112198281088 -> n140112198279576
+	n140112198280920 [label="*"]
+	n140112198281088 -> n140112198280920
+	n140112198281200 [label=Assign]
+	n140112198282768 [label=VectorAccess]
+	n140112198281200 -> n140112198282768
+	n140112198281648 [label=VectorAccess]
+	n140112198281200 -> n140112198281648
+	n140112198317168 [label=VectorAccess]
+	n140112198281200 -> n140112198317168
+	n140112198283216 [label=VectorAccess]
+	n140112198281200 -> n140112198283216
+	n140112198318736 [label=VectorAccess]
+	n140112198281200 -> n140112198318736
+	n140112198317616 [label=VectorAccess]
+	n140112198281200 -> n140112198317616
+	n140112198282768 [label=VectorAccess]
+	n140112198279576 [label=PropertyAccess]
+	n140112198282768 -> n140112198279576
+	n140112198281648 [label=VectorAccess]
+	n140112198281088 [label="+"]
+	n140112198281648 -> n140112198281088
+	n140112198317168 [label=VectorAccess]
+	n140112198279576 [label=PropertyAccess]
+	n140112198317168 -> n140112198279576
+	n140112198283216 [label=VectorAccess]
+	n140112198281088 [label="+"]
+	n140112198283216 -> n140112198281088
+	n140112198318736 [label=VectorAccess]
+	n140112198279576 [label=PropertyAccess]
+	n140112198318736 -> n140112198279576
+	n140112198317616 [label=VectorAccess]
+	n140112198281088 [label="+"]
+	n140112198317616 -> n140112198281088
+	n140112198162360 [label=0]
+	n140112198162192 [label=ArrayAccess]
+	n140112198589184 [label=numneighs]
+	n140112198162192 -> n140112198589184
+	n140112198161912 [label="Iter(0)"]
+	n140112198162192 -> n140112198161912
+	n140112198589184 [label=numneighs]
+	n140112198161968 [label=0]
+	n140112198162024 [label=0]
+	n140112198279352 [label=KernelBlock]
+	n140112198589688 [label=Block]
+	n140112198279352 -> n140112198589688
+	n140112198589688 [label=Block]
+	n140112198589632 [label=ParticleFor]
+	n140112198589688 -> n140112198589632
+	n140112198589632 [label=ParticleFor]
+	n140112198590304 [label="Iter(2)"]
+	n140112198589632 -> n140112198590304
+	n140112198589856 [label=Block]
+	n140112198589632 -> n140112198589856
+	n140112198589520 [label=0]
+	n140112198589632 -> n140112198589520
+	n140112198589968 [label=0]
+	n140112198589632 -> n140112198589968
+	n140112198590304 [label="Iter(2)"]
+	n140112198589856 [label=Block]
+	n140112198319520 [label=Assign]
+	n140112198589856 -> n140112198319520
+	n140112198356608 [label=Assign]
+	n140112198589856 -> n140112198356608
+	n140112198318792 [label=PropertyAccess]
+	n140112198557648 [label=velocity]
+	n140112198318792 -> n140112198557648
+	n140112198590304 [label="Iter(2)"]
+	n140112198318792 -> n140112198590304
+	n140112198320024 [label="*"]
+	n140112198318792 -> n140112198320024
+	n140112198354592 [label="+"]
+	n140112198318792 -> n140112198354592
+	n140112198355824 [label="+"]
+	n140112198318792 -> n140112198355824
+	n140112198557648 [label=velocity]
+	n140112198320024 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198320024 -> n140112198590304
+	n140112198353248 [label=3]
+	n140112198320024 -> n140112198353248
+	n140112198353248 [label=3]
+	n140112198354592 [label="+"]
+	n140112198354088 [label="*"]
+	n140112198354592 -> n140112198354088
+	n140112198354648 [label=1]
+	n140112198354592 -> n140112198354648
+	n140112198354088 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198354088 -> n140112198590304
+	n140112198354480 [label=3]
+	n140112198354088 -> n140112198354480
+	n140112198354480 [label=3]
+	n140112198354648 [label=1]
+	n140112198355824 [label="+"]
+	n140112198355320 [label="*"]
+	n140112198355824 -> n140112198355320
+	n140112198355880 [label=2]
+	n140112198355824 -> n140112198355880
+	n140112198355320 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198355320 -> n140112198590304
+	n140112198355712 [label=3]
+	n140112198355320 -> n140112198355712
+	n140112198355712 [label=3]
+	n140112198355880 [label=2]
+	n140112198318904 [label=PropertyAccess]
+	n140112198586440 [label=force]
+	n140112198318904 -> n140112198586440
+	n140112198590304 [label="Iter(2)"]
+	n140112198318904 -> n140112198590304
+	n140112198320080 [label="*"]
+	n140112198318904 -> n140112198320080
+	n140112198354312 [label="+"]
+	n140112198318904 -> n140112198354312
+	n140112198355544 [label="+"]
+	n140112198318904 -> n140112198355544
+	n140112198320080 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198320080 -> n140112198590304
+	n140112198352968 [label=3]
+	n140112198320080 -> n140112198352968
+	n140112198352968 [label=3]
+	n140112198354312 [label="+"]
+	n140112198354144 [label="*"]
+	n140112198354312 -> n140112198354144
+	n140112198354368 [label=1]
+	n140112198354312 -> n140112198354368
+	n140112198354144 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198354144 -> n140112198590304
+	n140112198354200 [label=3]
+	n140112198354144 -> n140112198354200
+	n140112198354200 [label=3]
+	n140112198354368 [label=1]
+	n140112198355544 [label="+"]
+	n140112198355376 [label="*"]
+	n140112198355544 -> n140112198355376
+	n140112198355600 [label=2]
+	n140112198355544 -> n140112198355600
+	n140112198355376 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198355376 -> n140112198590304
+	n140112198355432 [label=3]
+	n140112198355376 -> n140112198355432
+	n140112198355432 [label=3]
+	n140112198355600 [label=2]
+	n140112198319016 [label="*"]
+	n140112198319072 [label=0.005]
+	n140112198319016 -> n140112198319072
+	n140112198318904 [label=PropertyAccess]
+	n140112198319016 -> n140112198318904
+	n140112198319072 [label=0.005]
+	n140112198319184 [label=PropertyAccess]
+	n140112198557536 [label=mass]
+	n140112198319184 -> n140112198557536
+	n140112198590304 [label="Iter(2)"]
+	n140112198319184 -> n140112198590304
+	n140112198557536 [label=mass]
+	n140112198319296 [label="/"]
+	n140112198319016 [label="*"]
+	n140112198319296 -> n140112198319016
+	n140112198319184 [label=PropertyAccess]
+	n140112198319296 -> n140112198319184
+	n140112198319408 [label="+"]
+	n140112198318792 [label=PropertyAccess]
+	n140112198319408 -> n140112198318792
+	n140112198319296 [label="/"]
+	n140112198319408 -> n140112198319296
+	n140112198319632 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198319632 -> n140112198590304
+	n140112198319688 [label=3]
+	n140112198319632 -> n140112198319688
+	n140112198319688 [label=3]
+	n140112198353696 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198353696 -> n140112198590304
+	n140112198353752 [label=3]
+	n140112198353696 -> n140112198353752
+	n140112198353752 [label=3]
+	n140112198353864 [label="+"]
+	n140112198353696 [label="*"]
+	n140112198353864 -> n140112198353696
+	n140112198353920 [label=1]
+	n140112198353864 -> n140112198353920
+	n140112198353920 [label=1]
+	n140112198354928 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198354928 -> n140112198590304
+	n140112198354984 [label=3]
+	n140112198354928 -> n140112198354984
+	n140112198354984 [label=3]
+	n140112198355096 [label="+"]
+	n140112198354928 [label="*"]
+	n140112198355096 -> n140112198354928
+	n140112198355152 [label=2]
+	n140112198355096 -> n140112198355152
+	n140112198355152 [label=2]
+	n140112198319520 [label=Assign]
+	n140112198353584 [label=VectorAccess]
+	n140112198319520 -> n140112198353584
+	n140112198319968 [label=VectorAccess]
+	n140112198319520 -> n140112198319968
+	n140112198354816 [label=VectorAccess]
+	n140112198319520 -> n140112198354816
+	n140112198354032 [label=VectorAccess]
+	n140112198319520 -> n140112198354032
+	n140112198356048 [label=VectorAccess]
+	n140112198319520 -> n140112198356048
+	n140112198355264 [label=VectorAccess]
+	n140112198319520 -> n140112198355264
+	n140112198353584 [label=VectorAccess]
+	n140112198318792 [label=PropertyAccess]
+	n140112198353584 -> n140112198318792
+	n140112198319968 [label=VectorAccess]
+	n140112198319408 [label="+"]
+	n140112198319968 -> n140112198319408
+	n140112198354816 [label=VectorAccess]
+	n140112198318792 [label=PropertyAccess]
+	n140112198354816 -> n140112198318792
+	n140112198354032 [label=VectorAccess]
+	n140112198319408 [label="+"]
+	n140112198354032 -> n140112198319408
+	n140112198356048 [label=VectorAccess]
+	n140112198318792 [label=PropertyAccess]
+	n140112198356048 -> n140112198318792
+	n140112198355264 [label=VectorAccess]
+	n140112198319408 [label="+"]
+	n140112198355264 -> n140112198319408
+	n140112198356104 [label=PropertyAccess]
+	n140112198557592 [label=position]
+	n140112198356104 -> n140112198557592
+	n140112198590304 [label="Iter(2)"]
+	n140112198356104 -> n140112198590304
+	n140112197861896 [label="*"]
+	n140112198356104 -> n140112197861896
+	n140112197863296 [label="+"]
+	n140112198356104 -> n140112197863296
+	n140112197864528 [label="+"]
+	n140112198356104 -> n140112197864528
+	n140112197861896 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197861896 -> n140112198590304
+	n140112197861952 [label=3]
+	n140112197861896 -> n140112197861952
+	n140112197861952 [label=3]
+	n140112197863296 [label="+"]
+	n140112197863128 [label="*"]
+	n140112197863296 -> n140112197863128
+	n140112197863352 [label=1]
+	n140112197863296 -> n140112197863352
+	n140112197863128 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197863128 -> n140112198590304
+	n140112197863184 [label=3]
+	n140112197863128 -> n140112197863184
+	n140112197863184 [label=3]
+	n140112197863352 [label=1]
+	n140112197864528 [label="+"]
+	n140112197864360 [label="*"]
+	n140112197864528 -> n140112197864360
+	n140112197864584 [label=2]
+	n140112197864528 -> n140112197864584
+	n140112197864360 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197864360 -> n140112198590304
+	n140112197864416 [label=3]
+	n140112197864360 -> n140112197864416
+	n140112197864416 [label=3]
+	n140112197864584 [label=2]
+	n140112198356216 [label=PropertyAccess]
+	n140112198557648 [label=velocity]
+	n140112198356216 -> n140112198557648
+	n140112198590304 [label="Iter(2)"]
+	n140112198356216 -> n140112198590304
+	n140112197861560 [label="*"]
+	n140112198356216 -> n140112197861560
+	n140112197862960 [label="+"]
+	n140112198356216 -> n140112197862960
+	n140112197864192 [label="+"]
+	n140112198356216 -> n140112197864192
+	n140112197861560 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197861560 -> n140112198590304
+	n140112197861616 [label=3]
+	n140112197861560 -> n140112197861616
+	n140112197861616 [label=3]
+	n140112197862960 [label="+"]
+	n140112197862792 [label="*"]
+	n140112197862960 -> n140112197862792
+	n140112197863016 [label=1]
+	n140112197862960 -> n140112197863016
+	n140112197862792 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197862792 -> n140112198590304
+	n140112197862848 [label=3]
+	n140112197862792 -> n140112197862848
+	n140112197862848 [label=3]
+	n140112197863016 [label=1]
+	n140112197864192 [label="+"]
+	n140112197864024 [label="*"]
+	n140112197864192 -> n140112197864024
+	n140112197864248 [label=2]
+	n140112197864192 -> n140112197864248
+	n140112197864024 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197864024 -> n140112198590304
+	n140112197864080 [label=3]
+	n140112197864024 -> n140112197864080
+	n140112197864080 [label=3]
+	n140112197864248 [label=2]
+	n140112198356328 [label="*"]
+	n140112198356384 [label=0.005]
+	n140112198356328 -> n140112198356384
+	n140112198356216 [label=PropertyAccess]
+	n140112198356328 -> n140112198356216
+	n140112198356384 [label=0.005]
+	n140112198356496 [label="+"]
+	n140112198356104 [label=PropertyAccess]
+	n140112198356496 -> n140112198356104
+	n140112198356328 [label="*"]
+	n140112198356496 -> n140112198356328
+	n140112198356720 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112198356720 -> n140112198590304
+	n140112198356776 [label=3]
+	n140112198356720 -> n140112198356776
+	n140112198356776 [label=3]
+	n140112197862400 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197862400 -> n140112198590304
+	n140112197862456 [label=3]
+	n140112197862400 -> n140112197862456
+	n140112197862456 [label=3]
+	n140112197862568 [label="+"]
+	n140112197862400 [label="*"]
+	n140112197862568 -> n140112197862400
+	n140112197862624 [label=1]
+	n140112197862568 -> n140112197862624
+	n140112197862624 [label=1]
+	n140112197863632 [label="*"]
+	n140112198590304 [label="Iter(2)"]
+	n140112197863632 -> n140112198590304
+	n140112197863688 [label=3]
+	n140112197863632 -> n140112197863688
+	n140112197863688 [label=3]
+	n140112197863800 [label="+"]
+	n140112197863632 [label="*"]
+	n140112197863800 -> n140112197863632
+	n140112197863856 [label=2]
+	n140112197863800 -> n140112197863856
+	n140112197863856 [label=2]
+	n140112198356608 [label=Assign]
+	n140112197862288 [label=VectorAccess]
+	n140112198356608 -> n140112197862288
+	n140112197861504 [label=VectorAccess]
+	n140112198356608 -> n140112197861504
+	n140112197863520 [label=VectorAccess]
+	n140112198356608 -> n140112197863520
+	n140112197862736 [label=VectorAccess]
+	n140112198356608 -> n140112197862736
+	n140112197864752 [label=VectorAccess]
+	n140112198356608 -> n140112197864752
+	n140112197863968 [label=VectorAccess]
+	n140112198356608 -> n140112197863968
+	n140112197862288 [label=VectorAccess]
+	n140112198356104 [label=PropertyAccess]
+	n140112197862288 -> n140112198356104
+	n140112197861504 [label=VectorAccess]
+	n140112198356496 [label="+"]
+	n140112197861504 -> n140112198356496
+	n140112197863520 [label=VectorAccess]
+	n140112198356104 [label=PropertyAccess]
+	n140112197863520 -> n140112198356104
+	n140112197862736 [label=VectorAccess]
+	n140112198356496 [label="+"]
+	n140112197862736 -> n140112198356496
+	n140112197864752 [label=VectorAccess]
+	n140112198356104 [label=PropertyAccess]
+	n140112197864752 -> n140112198356104
+	n140112197863968 [label=VectorAccess]
+	n140112198356496 [label="+"]
+	n140112197863968 -> n140112198356496
+	n140112198589520 [label=0]
+	n140112198589968 [label=0]
 }
diff --git a/examples/kernels.pdf b/examples/kernels.pdf
index fcb7d7a2bb06df091f90c8279144a3f666c933d1..12844fa0ef674cc8aac18d7586a87a09b51f5b94 100644
Binary files a/examples/kernels.pdf and b/examples/kernels.pdf differ
diff --git a/examples/lj_ns.cpp b/examples/lj_ns.cpp
index c3a1cb4050284a43efb3264a757ed7591288ce43..169705c0928b4546786bb23109f1869a78a2c207 100644
--- a/examples/lj_ns.cpp
+++ b/examples/lj_ns.cpp
@@ -60,8 +60,6 @@ int main() {
     grid0_d2_min = a4;
     const double a5 = grid_buffer[5];
     grid0_d2_max = a5;
-    fprintf(stdout, "CellListsStencilBuild\n");
-    fflush(stdout);
     const double e462 = grid0_d0_max - grid0_d0_min;
     const double e463 = e462 / 2.8;
     const int e464 = ceil(e463) + 2;
@@ -120,8 +118,7 @@ int main() {
         const int e452 = i14 % 20;
         const bool e453 = e452 == 0;
         if(e453) {
-            fprintf(stdout, "EnforcePBC\n");
-            fflush(stdout);
+            pairs::copy_to_device(position)
             const double e115 = grid0_d0_max - grid0_d0_min;
             const double e122 = grid0_d0_max - grid0_d0_min;
             const double e129 = grid0_d1_max - grid0_d1_min;
@@ -196,8 +193,6 @@ int main() {
         const int e454 = i14 % 20;
         const bool e455 = e454 == 0;
         if(e455) {
-            fprintf(stdout, "SetupPBC\n");
-            fflush(stdout);
             resize = 1;
             while((resize > 0)) {
                 resize = 0;
@@ -501,8 +496,6 @@ int main() {
                 }
             }
         } else {
-            fprintf(stdout, "UpdatePBC\n");
-            fflush(stdout);
             const double e348 = grid0_d0_max - grid0_d0_min;
             const double e358 = grid0_d1_max - grid0_d1_min;
             const double e368 = grid0_d2_max - grid0_d2_min;
@@ -551,8 +544,6 @@ int main() {
         const int e456 = i14 % 20;
         const bool e457 = e456 == 0;
         if(e457) {
-            fprintf(stdout, "CellListsBuild\n");
-            fflush(stdout);
             resize = 1;
             while((resize > 0)) {
                 resize = 0;
@@ -612,8 +603,6 @@ int main() {
         const int e458 = i14 % 20;
         const bool e459 = e458 == 0;
         if(e459) {
-            fprintf(stdout, "NeighborListsBuild\n");
-            fflush(stdout);
             resize = 1;
             while((resize > 0)) {
                 resize = 0;
@@ -687,8 +676,7 @@ int main() {
                 }
             }
         }
-        fprintf(stdout, "PropertiesResetVolatile\n");
-        fflush(stdout);
+        pairs::copy_to_device(force)
         for(int i13 = 0; i13 < nlocal; i13++) {
             const int e446 = i13 * 3;
             const double p73_0 = force[e446];
@@ -702,8 +690,7 @@ int main() {
             force[e449] = 0.0;
             force[e451] = 0.0;
         }
-        pairs::copy_to_device(position)
-        pairs::copy_to_device(force)
+        const int e460 = i14 + 1;
         for(int i0 = 0; i0 < nlocal; i0++) {
             const int e1 = i0 * neighborlist_capacity;
             const int e47 = i0 * 3;
@@ -822,7 +809,6 @@ int main() {
             position[e109] = e91_2;
         }
         const int e461 = nlocal + npbc;
-        const int e460 = i14 + 1;
         pairs::vtk_write_data(ps, "output/test_local", 0, nlocal, e460);
         pairs::vtk_write_data(ps, "output/test_pbc", nlocal, e461, e460);
     }
diff --git a/src/pairs/ir/block.py b/src/pairs/ir/block.py
index ad8309a78179bf8f43b17791345df7c3ba18f542..ff759039c9e6ea30696fa06c713e1fdc4e056686 100644
--- a/src/pairs/ir/block.py
+++ b/src/pairs/ir/block.py
@@ -1,6 +1,37 @@
 from pairs.ir.ast_node import ASTNode
 
 
+def pairs_block(func):
+    def inner(*args, **kwargs):
+        sim = args[0].sim # self.sim
+        sim.clear_block()
+        func(*args, **kwargs)
+        return sim.block
+
+    return inner
+
+
+def pairs_device_block(func):
+    def inner(*args, **kwargs):
+        sim = args[0].sim # self.sim
+        sim.clear_block()
+        func(*args, **kwargs)
+        return KernelBlock(sim, sim.block)
+
+    return inner
+
+
+# TODO: Is this really useful? Or just pairs_block is enough?
+def pairs_host_block(func):
+    def inner(*args, **kwargs):
+        sim = args[0].sim # self.sim
+        sim.clear_block()
+        func(*args, **kwargs)
+        return KernelBlock(sim, sim.block, run_on_host=True)
+
+    return inner
+
+
 class Block(ASTNode):
     def __init__(self, sim, stmts):
         super().__init__(sim)
@@ -37,12 +68,16 @@ class Block(ASTNode):
         return Block(block1.sim, block1.statements() + block2.statements())
 
     def from_list(sim, block_list):
-        assert isinstance(block_list, list), "Passed argument is not a list!"
+        assert isinstance(block_list, list), "Given argument is not a list!"
         result_block = Block(sim, [])
 
         for block in block_list:
-            assert isinstance(block, Block), "Element in list is not Block!"
-            result_block = Block.merge_blocks(result_block, block)
+            if isinstance(block, Block):
+                result_block = Block.merge_blocks(result_block, block)
+            elif isinstance(block, KernelBlock):
+                result_block.add_statement(block)
+            else:
+                raise Exception("Element in list is not Block!")
 
         return result_block
 
diff --git a/src/pairs/sim/arrays.py b/src/pairs/sim/arrays.py
index 232964a9aea286747119b06e5c608590f22aa599..7167baf724ba560d3a01d7d354c21c6d3e0ba1c0 100644
--- a/src/pairs/sim/arrays.py
+++ b/src/pairs/sim/arrays.py
@@ -1,3 +1,4 @@
+from pairs.ir.block import pairs_block
 from pairs.ir.memory import Malloc
 from pairs.ir.arrays import ArrayDecl
 
@@ -6,12 +7,10 @@ class ArraysDecl:
     def __init__(self, sim):
         self.sim = sim
 
+    @pairs_block
     def lower(self):
-        self.sim.clear_block()
         for a in self.sim.arrays.all():
             if a.is_static():
                 ArrayDecl(self.sim, a)
             else:
                 Malloc(self.sim, a, a.alloc_size(), True)
-
-        return self.sim.block
diff --git a/src/pairs/sim/cell_lists.py b/src/pairs/sim/cell_lists.py
index 6e94efde7f7c7e1147c8b70ce374bab0fdc757e5..6657cd60da15e50164094150ac87e84c163c56d8 100644
--- a/src/pairs/sim/cell_lists.py
+++ b/src/pairs/sim/cell_lists.py
@@ -1,6 +1,7 @@
 from functools import reduce
 import math
 from pairs.ir.bin_op import BinOp
+from pairs.ir.block import pairs_device_block
 from pairs.ir.branches import Branch, Filter
 from pairs.ir.cast import Cast
 from pairs.ir.data_types import Type_Int
@@ -30,68 +31,67 @@ class CellLists:
 
 
 class CellListsStencilBuild:
-    def __init__(self, cell_lists):
+    def __init__(self, sim, cell_lists):
+        self.sim = sim
         self.cell_lists = cell_lists
 
+    @pairs_device_block
     def lower(self):
+        sim = self.sim
         cl = self.cell_lists
-        grid = cl.sim.grid
+        grid = sim.grid
         index = None
         nall = 1
 
-        cl.sim.clear_block()
-        cl.sim.add_statement(Print(cl.sim, "CellListsStencilBuild"))
-
-        for d in range(cl.sim.ndims()):
-            cl.dim_ncells[d].set(Ceil(cl.sim, (grid.max(d) - grid.min(d)) / cl.spacing[d]) + 2)
+        for d in range(sim.ndims()):
+            cl.dim_ncells[d].set(Ceil(sim, (grid.max(d) - grid.min(d)) / cl.spacing[d]) + 2)
             nall *= cl.dim_ncells[d]
 
         cl.ncells.set(nall)
-        for resize in Resize(cl.sim, cl.ncells_capacity):
-            for _ in Filter(cl.sim, cl.ncells >= cl.ncells_capacity):
+        for resize in Resize(sim, cl.ncells_capacity):
+            for _ in Filter(sim, cl.ncells >= cl.ncells_capacity):
                 resize.set(cl.ncells)
 
-        for _ in cl.sim.nest_mode():
+        for _ in sim.nest_mode():
             cl.nstencil.set(0)
-            for d in range(cl.sim.ndims()):
+            for d in range(sim.ndims()):
                 nneigh = cl.nneighbor_cells[d]
-                for d_idx in For(cl.sim, -nneigh, nneigh + 1):
+                for d_idx in For(sim, -nneigh, nneigh + 1):
                     index = (d_idx if index is None else index * cl.dim_ncells[d - 1] + d_idx)
-                    if d == cl.sim.ndims() - 1:
+                    if d == sim.ndims() - 1:
                         cl.stencil[cl.nstencil].set(index)
                         cl.nstencil.set(cl.nstencil + 1)
 
-        return cl.sim.block
-
 
 class CellListsBuild:
-    def __init__(self, cell_lists):
+    def __init__(self, sim, cell_lists):
+        self.sim = sim
         self.cell_lists = cell_lists
 
+    @pairs_device_block
     def lower(self):
+        sim = self.sim
         cl = self.cell_lists
-        grid = cl.sim.grid
-        positions = cl.sim.property('position')
+        grid = sim.grid
+        positions = sim.property('position')
 
-        cl.sim.clear_block()
-        cl.sim.add_statement(Print(cl.sim, "CellListsBuild"))
-        for resize in Resize(cl.sim, cl.cell_capacity):
-            for c in For(cl.sim, 0, cl.ncells):
+        for resize in Resize(sim, cl.cell_capacity):
+            for c in For(sim, 0, cl.ncells):
                 cl.cell_sizes[c].set(0)
 
-            for i in ParticleFor(cl.sim, local_only=False):
+            for i in ParticleFor(sim, local_only=False):
                 cell_index = [
-                    Cast.int(cl.sim, (positions[i][d] - grid.min(d)) / cl.spacing[d])
-                    for d in range(0, cl.sim.ndims())]
+                    Cast.int(sim, (positions[i][d] - grid.min(d)) / cl.spacing[d])
+                    for d in range(0, sim.ndims())]
 
                 flat_idx = None
-                for d in range(0, cl.sim.ndims()):
+                for d in range(0, sim.ndims()):
                     flat_idx = (cell_index[d] if flat_idx is None
                                 else flat_idx * cl.dim_ncells[d] + cell_index[d])
 
                 cell_size = cl.cell_sizes[flat_idx]
-                for _ in Filter(cl.sim, BinOp.and_op(flat_idx >= 0, flat_idx <= cl.ncells)):
-                    for cond in Branch(cl.sim, cell_size >= cl.cell_capacity):
+                for _ in Filter(sim, BinOp.and_op(flat_idx >= 0, flat_idx <= cl.ncells)):
+                    for cond in Branch(sim, cell_size >= cl.cell_capacity):
                         if cond:
                             resize.set(cell_size)
                         else:
@@ -99,5 +99,3 @@ class CellListsBuild:
                             cl.particle_cell[i].set(flat_idx)
 
                     cl.cell_sizes[flat_idx].set(cell_size + 1)
-
-        return cl.sim.block
diff --git a/src/pairs/sim/lattice.py b/src/pairs/sim/lattice.py
index d2332c7ebe6e900ffb638f370ad07e96fab4db99..8977f8727f3a77fb18ba8f83901004580f359b02 100644
--- a/src/pairs/sim/lattice.py
+++ b/src/pairs/sim/lattice.py
@@ -1,3 +1,4 @@
+from pairs.ir.block import pairs_block
 from pairs.ir.data_types import Type_Vector
 from pairs.ir.loops import For
 
@@ -10,6 +11,7 @@ class ParticleLattice():
         self.props = props
         self.positions = positions
 
+    @pairs_block
     def lower(self):
         index = None
         loop_indexes = []
diff --git a/src/pairs/sim/neighbor_lists.py b/src/pairs/sim/neighbor_lists.py
index f134c1db4f3dc99e0b5d9f03ace5a9600c2e0e51..13b568272bcea18de50bfaf51c8023912edf828e 100644
--- a/src/pairs/sim/neighbor_lists.py
+++ b/src/pairs/sim/neighbor_lists.py
@@ -1,3 +1,4 @@
+from pairs.ir.block import pairs_device_block
 from pairs.ir.branches import Branch, Filter
 from pairs.ir.data_types import Type_Int
 from pairs.ir.loops import For, ParticleFor, NeighborFor
@@ -15,18 +16,18 @@ class NeighborLists:
 
 
 class NeighborListsBuild:
-    def __init__(self, neighbor_lists):
+    def __init__(self, sim, neighbor_lists):
+        self.sim = sim
         self.neighbor_lists = neighbor_lists
 
+    @pairs_device_block
     def lower(self):
+        sim = self.sim
         neighbor_lists = self.neighbor_lists
-        sim = neighbor_lists.sim
         cell_lists = neighbor_lists.cell_lists
         cutoff_radius = cell_lists.cutoff_radius
         position = sim.property('position')
 
-        sim.clear_block()
-        sim.add_statement(Print(sim, "NeighborListsBuild"))
         for resize in Resize(sim, neighbor_lists.capacity):
             for i in ParticleFor(sim):
                 neighbor_lists.numneighs[i].set(0)
@@ -42,5 +43,3 @@ class NeighborListsBuild:
                             else:
                                 neighbor_lists.neighborlists[i][numneighs].set(j)
                                 neighbor_lists.numneighs[i].set(numneighs + 1)
-
-        return sim.block
diff --git a/src/pairs/sim/pbc.py b/src/pairs/sim/pbc.py
index c480c4d3a5ebb58468c7ca2a43fdaa9abf7ad2c5..76886ade244874f692260de3981c95c5fbca1c16 100644
--- a/src/pairs/sim/pbc.py
+++ b/src/pairs/sim/pbc.py
@@ -1,3 +1,4 @@
+from pairs.ir.block import pairs_device_block
 from pairs.ir.branches import Branch, Filter
 from pairs.ir.data_types import Type_Int
 from pairs.ir.loops import For, ParticleFor
@@ -19,11 +20,13 @@ class PBC:
 
 
 class UpdatePBC:
-    def __init__(self, pbc):
+    def __init__(self, sim, pbc):
+        self.sim = sim
         self.pbc = pbc
 
+    @pairs_device_block
     def lower(self):
-        sim = self.pbc.sim
+        sim = self.sim
         ndims = sim.ndims()
         grid = self.pbc.grid
         npbc = self.pbc.npbc
@@ -32,29 +35,25 @@ class UpdatePBC:
         positions = self.pbc.sim.property('position')
         nlocal = self.pbc.sim.nlocal
 
-        sim.clear_block()
-        sim.add_statement(Print(sim, "UpdatePBC"))
         for i in For(sim, 0, npbc):
             # TODO: allow syntax:
             # positions[nlocal + i].set(positions[pbc_map[i]] + pbc_mult[i] * grid.length)
             for d in range(0, ndims):
                 positions[nlocal + i][d].set(positions[pbc_map[i]][d] + pbc_mult[i][d] * grid.length(d))
 
-        return sim.block
-
 
 class EnforcePBC:
-    def __init__(self, pbc):
+    def __init__(self, sim, pbc):
+        self.sim = sim
         self.pbc = pbc
 
+    @pairs_device_block
     def lower(self):
-        sim = self.pbc.sim
+        sim = self.sim
         ndims = sim.ndims()
         grid = self.pbc.grid
         positions = sim.property('position')
 
-        sim.clear_block()
-        sim.add_statement(Print(sim, "EnforcePBC"))
         for i in ParticleFor(sim):
             # TODO: VecFilter?
             for d in range(0, ndims):
@@ -64,15 +63,15 @@ class EnforcePBC:
                 for _ in Filter(sim, positions[i][d] > grid.max(d)):
                     positions[i][d].sub(grid.length(d))
 
-        return sim.block
-
 
 class SetupPBC:
-    def __init__(self, pbc):
+    def __init__(self, sim, pbc):
+        self.sim = sim
         self.pbc = pbc
 
+    @pairs_device_block
     def lower(self):
-        sim = self.pbc.sim
+        sim = self.sim
         ndims = sim.ndims()
         grid = self.pbc.grid
         cutneigh = self.pbc.cutneigh
@@ -83,8 +82,6 @@ class SetupPBC:
         positions = self.pbc.sim.property('position')
         nlocal = self.pbc.sim.nlocal
 
-        sim.clear_block()
-        sim.add_statement(Print(sim, "SetupPBC"))
         for resize in Resize(sim, pbc_capacity):
             npbc.set(0)
             for d in range(0, ndims):
@@ -120,5 +117,3 @@ class SetupPBC:
                                     positions[last_id][d_].set(positions[i][d_])
 
                                 npbc.add(1)
-
-        return sim.block
diff --git a/src/pairs/sim/properties.py b/src/pairs/sim/properties.py
index 7839eed72d759edf9cefcd6f8d708678b716d477..3892bbf372a876757af641d92c478f62f686fc4a 100644
--- a/src/pairs/sim/properties.py
+++ b/src/pairs/sim/properties.py
@@ -1,3 +1,4 @@
+from pairs.ir.block import pairs_block, pairs_device_block
 from pairs.ir.data_types import Type_Float, Type_Vector
 from pairs.ir.loops import ParticleFor
 from pairs.ir.memory import Malloc, Realloc
@@ -12,10 +13,9 @@ class PropertiesAlloc:
         self.sim = sim
         self.realloc = realloc
 
+    @pairs_block
     def lower(self):
         capacity = sum(self.sim.properties.capacities)
-
-        self.sim.clear_block()
         for p in self.sim.properties.all():
             sizes = []
             if p.type() == Type_Float:
@@ -32,18 +32,13 @@ class PropertiesAlloc:
                 Malloc(self.sim, p, reduce(operator.mul, sizes), True)
                 RegisterProperty(self.sim, p, sizes)
 
-        return self.sim.block
-
 
 class PropertiesResetVolatile:
     def __init__(self, sim):
         self.sim = sim
 
+    @pairs_device_block
     def lower(self):
-        self.sim.clear_block()
-        self.sim.add_statement(Print(self.sim, "PropertiesResetVolatile"))
         for i in ParticleFor(self.sim):
             for p in self.sim.properties.volatiles():
                 p[i].set(0.0)
-
-        return self.sim.block
diff --git a/src/pairs/sim/read_from_file.py b/src/pairs/sim/read_from_file.py
index dc3355bb083a99094079a3aee17f0ab28f086651..6f16cb0556a235f7786952947ecbc164f820e7d0 100644
--- a/src/pairs/sim/read_from_file.py
+++ b/src/pairs/sim/read_from_file.py
@@ -1,3 +1,4 @@
+from pairs.ir.block import pairs_block
 from pairs.ir.data_types import Type_Float
 from pairs.ir.functions import Call_Int
 from pairs.ir.properties import PropertyList
@@ -12,13 +13,11 @@ class ReadFromFile():
         self.grid = MutableGrid(sim, sim.ndims())
         self.grid_buffer = self.sim.add_static_array("grid_buffer", [self.sim.ndims() * 2], Type_Float)
 
+    @pairs_block
     def lower(self):
-        self.sim.clear_block()
         self.sim.nlocal.set(Call_Int(self.sim, "pairs::read_particle_data",
                             [self.filename, self.grid_buffer, self.props, self.props.length()]))
 
         for d in range(self.sim.ndims()):
             self.grid.min(d).set(self.grid_buffer[d * 2 + 0])
             self.grid.max(d).set(self.grid_buffer[d * 2 + 1])
-
-        return self.sim.block
diff --git a/src/pairs/sim/simulation.py b/src/pairs/sim/simulation.py
index 6ed9f8a36fb1cb74a3756e7dbe3ef1d6ba22807f..238e39242be802593b658b9d4a06eb1f83062fe6 100644
--- a/src/pairs/sim/simulation.py
+++ b/src/pairs/sim/simulation.py
@@ -186,10 +186,10 @@ class Simulation:
 
     def generate(self):
         timestep = Timestep(self, self.ntimesteps, [
-            (EnforcePBC(self.pbc).lower(), 20),
-            (SetupPBC(self.pbc).lower(), UpdatePBC(self.pbc).lower(), 20),
-            (CellListsBuild(self.cell_lists).lower(), 20),
-            (NeighborListsBuild(self.neighbor_lists).lower(), 20),
+            (EnforcePBC(self, self.pbc).lower(), 20),
+            (SetupPBC(self, self.pbc).lower(), UpdatePBC(self, self.pbc).lower(), 20),
+            (CellListsBuild(self, self.cell_lists).lower(), 20),
+            (NeighborListsBuild(self, self.neighbor_lists).lower(), 20),
             PropertiesResetVolatile(self).lower(),
             self.kernels
         ])
@@ -198,7 +198,7 @@ class Simulation:
 
         body = Block.from_list(self, [
             self.setups,
-            CellListsStencilBuild(self.cell_lists).lower(),
+            CellListsStencilBuild(self, self.cell_lists).lower(),
             VTKWrite(self, self.vtk_file, 0).lower(),
             timestep.as_block()
         ])
diff --git a/src/pairs/sim/variables.py b/src/pairs/sim/variables.py
index 6869ed1578bf0f93a7e18af5993e34d6c3d96727..1d9168ffdedb5ae67b84b17ea9f6a81f65c3ff39 100644
--- a/src/pairs/sim/variables.py
+++ b/src/pairs/sim/variables.py
@@ -1,3 +1,4 @@
+from pairs.ir.block import pairs_block
 from pairs.ir.variables import VarDecl
 
 
@@ -5,9 +6,7 @@ class VariablesDecl:
     def __init__(self, sim):
         self.sim = sim
 
+    @pairs_block
     def lower(self):
-        self.sim.clear_block()
         for v in self.sim.vars.all():
             VarDecl(self.sim, v)
-
-        return self.sim.block