optimize initialzer