refactoring, work very faster and is quite simply to understand, nice will come soon