Skeleton implementation (partial)