initial plugin implementation