logging, error handling, config, testing