Modularized library to make it easier usable from external