seprate demo and library