cast keys to string, closes #14
add abort(), closes #10