write tests, prep for packagist