I didn't like having 3 return statements scattered through the method, especially since the PropertyAction checks had return statements for toplevel and nested, both of which were identical.