As someone else mentioned, wrapping this conversion to dollars makes
it a lot easier to manage.
The stack too deep problem in your overloading of price and price=
should be able to be solved by using the direct accesors like so:
or however you want to manually manage the accessors, just make sure
when overloading you use the read_attribute, and write_attribute,
because if you simply use the variable as normally, you will be
calling the same method you are defining, causing the stack too deep