started implementation of TPattern types