interface for particles