application adapting the abstract types