Moved impl to a separate package