adding dry wet abstraction