Skeleton and first try (not compileable)