function properties are considered lazy evaluated properties