First commit, with the plugin partially functional (80% working)