New implementation, by Khrall

Hvis du liker implementasjonen så må du gjerne merge (: