refactor python property