removed modifiers static, used singleton pattern instead