refactor for better properties loading/handling