property grid refactor - WIP