plugin constructor