implemented add & format