Completed the very first lib version without testing