more sophisticated ADT, ? and * capabilities
Changes to match method