Switch from attributes to functions for properties