properly return a value from non-void function
don't leak memory
don't leak memory, pt.2
don't leak memory, pt.3
don't leak memory, pt.4
don't leak memory, pt.5
don't leak memory, pt.6
don't leak memory, pt.7