Added factory-style API, removed existing server implementation