functionality improvements