- add command merge
- add class prompt and move sig handler to prompt class
- improve some functions names and move some functions into abstract class