Feature/initial plugin framework