Added some kind of database abstract layer to give the liberty of using different databases.