Some refactor;