added Property.once and unit tests for it