complete structrue