made changes; still need to fix/add tests (#30)