add more events, ensure ports are at least empty objects