i don't think this can be both a library and an executable