virtual keyboard class