property grid refactor - closes #359