main class is seperated from uniq operations