improve point calculation