more structure implementation