all works except for some bugs in showing, layout need to be changed