add an adaptable pattern class