Author: Brian Cashinella and keith thompson