generify types of model functions
rewrite internals to be less bad
add executable to gitignore
add executable to gitignore
use Data.Map.findWithDefault
cleanup
cleanup
make code more self-documenting
make code more self-documenting
make everything less ridiculous