use decimal instead of double all over