Some function restructure!