not sure what to do about database connection interface, considering
creating an abstract class or simply a standard class.
consider db connection issues, such as abstract class vs interface vs
simple class, read into design patterns perhaps?