lets re add some optimizations