factor go impl a little