preparing real impl and fixing the names