introduce cmake and libraryfied