working e == s
needs some profiling