The Active object pattern