morse core functionality done