compiles alright, but there is some logic problem, always getting 4.57