add acceptance tests and implement HTTP functionality