https://medium.com/@crimson.wheeler/scalable-architecture-for-your-games-with-an-rts-walkthrough-part-1-56b123626a4a