first structure implementation