core functionality in place