uses PDO rather than creating instances