Added captions and elegant keyboard func