menu near the end
completed, need some optimization