refactoring the bettergfacimpl