Fixes #118: breaks out modules into more reasonable packages.