fix bug and restructured