updated with  fixed structure