properties refactored
some fixed to refactor