all basic functionlalities implemented