very basic interface and example