optimize Adapter::__construct()