Restructured project into component plugins