plugin framework, initial checkin