Optimizations

are you sure with this? interface is cleaner, but ... argh :D I don't like this kind of functions :-/