basic plugin system structure
further plugin implementation