This is the first take of this, its done in such a way where we can awlays iterate improvements into it.