added transaction support, simplified is function, changed http build query to array map