Improve and cleanup