Made a more accurate version