added data layer with SQLAlchemy