chapter 10 basics
chapter 10 bonus - added cons, len and init functions