Property grid refactor