start of input module
easy singleton