Theres some missing logic… But fuck it!!