-added core functionality