Remove use of Supplier in public API's and switch to an internal Property class