only run as library