code samples #2 and #3