i guess we need more memory management here too