tried to implement all the parameters