added the core project, will refactor later