added description, debugged some