restrictions fixed; toString aded