Funset: finished part 1