*some optimizations