#23 moved plugin management to separate core module