use custom type for price and date; re-organizing