add getConnection method
make getConnection abstract
add transaction method