Split the property macro to prototype and implementation
Whitespace fix
Macro to simplify the listing public API