beginnings of core functionality