change it to return pointer
update