All functionality and examples implemented except for bonus.