Note this project should not be copied without my permission.