use proto to store syngleton data