Add FunctionalInterface annotation, and sample codes