added al ot of features!