startup function registration can now handle multiple definitions