added data and core functionality