add cost property
Split price encoding/decoding out
Use Price datatype