Semantic part started. I have made like 4 or 5 big functions