Some refactor, help correction