Seems like it is faster to have optimized versions