Author: edied and intro by edwin c. rozwenc