completes core functionality