refactor make structures