added some events and modules, need to think about using components inside other components