implement primary structure