function can now return price too