centralize reflection logic for retrieving properties