Clean up solution and some enhancements