Optimize constructor