added basic plugin infrastructure