add sqlalchemy, rework model, not tested