Add TODOs
Add inheritance
Refactor helper functions
Add more reference counting
Merge branch 'master' into memory-management