Implemented event system and started implementing plugin system