added core files and functionality