fix bug and polish ui