further work on custom particles