added plugins, completely reworked most of the codebase.