improvements on functionlity