did some work on the backend