Aded a unique constraint to the solve states
Improved the offline solve synch to prevent duplicates in local storage
Re-factored the solve services providing a better separation of concerns