improve and clean up solutions