various code from books and tutorials