Converted private methods to protected ones.
Converted into a plugin.
Added composer file.
Merge branch 'dev'