Let's try to put ourselves in the shoes of a new user that wants to use the library: what steps do they have to follow? What files do they have to include depending on which features they want? Should we publish this library on npm?