use initialization instead of memset where possible