abstract added and backend changes