use doubles to avoid null value