Many changes and adding backend