split the backend and front end. added tests