add menu listeners, struct changes