separate lib