modify so many many many logic