First commit, sending just a draft of this lib