Some comments
Added alloc/free interface so that garbage collection can be implemented behind the scenes later