Added flags to make some core functionality optional