Some changes, but I still working on it