Started plugin system
Preliminary commit, currently doesn't work but base is there