fix bugs, add format