fully working added memset