* initial commit * added tests * code cleanup and more tests * add missed util test * changes to address comments * remove pin from resources