added particle creation method