you shoud optimalise this