what about a custom property then? this is definitely a leaky abstraction.