basic pattern library