bug fixed; FINAL