Make several enhancements
Close #1