TODO updated: return type memo
last time i put wrong examples