ok now readding optimization