moved core code to core project