implemented config as typedef