initial fork of original code by Justin Roush