Reinvent cpp data structure, just for personal learning journey